首頁 > web前端 > js教程 > 為什麼使用 jQuery 將輸入欄位類型從密碼變更為文字失敗?

為什麼使用 jQuery 將輸入欄位類型從密碼變更為文字失敗?

Linda Hamilton
發布: 2024-11-20 04:04:02
原創
212 人瀏覽過

Why Does Changing an Input Field Type From Password to Text With jQuery Fail?

jQuery:更改輸入欄位類型

此場景涉及嘗試使用 jQuery 將輸入欄位的類型屬性從密碼變更為文字。然而,這項努力被證明是不成功的。

提供的程式碼,執行後:

$(document).ready(function() {<p> });<br> pre></p><p>旨在以#password 欄位為目標指定為密碼的type 屬性並將其切換到標準文字欄位。隨後,它的目標是用文字“密碼”填充更改後的欄位。 </p><p>但是,儘管程式碼存在,但預期結果未能實現。為什麼? </p><p>問題的癥結在於瀏覽器功能中的安全問題。變更輸入欄位的類型,特別是從密碼等安全類型變更為常規類型,會觸發瀏覽器實施的安全措施。這種情況經常在 Safari 等瀏覽器中觀察到。 </p><p>要解決此困境,建議使用裸DOM(文檔物件模型)的解決方法:</p><p></p><pre class="brush:php;toolbar:false"><br>var pass = document.createElement('input');<br>pass.type = '密碼';<br>document.body.appendChild(pass);<br>pass.type = '文本';<br>pass.value = '密碼';<br>
登入後複製

這種方法繞過了 jQuery 的限制,同時達到了預期的效果。

值得注意的是,直接修改透過 jQuery 的 type 屬性在 IE 中遇到問題。 jQuery 的原始碼揭示了這個約束:

<br>// 我們不能允許更改type 屬性(因為它會在IE 中引起問題)<br>if ( name == "類型" && jQuery.nodeName( elem, "input" ) && elem.parentNode )<p></p>
登入後複製

因此,當嘗試使用jQuery 將輸入欄位的類型從密碼更改為文字並遇到困難時,建議使用原始DOM上面概述的方法可以解決任何瀏覽器施加的安全限制。

以上是為什麼使用 jQuery 將輸入欄位類型從密碼變更為文字失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板