首頁 > web前端 > js教程 > 為什麼我無法使用 jQuery 將輸入欄位的「類型」從密碼更改為文字?

為什麼我無法使用 jQuery 將輸入欄位的「類型」從密碼更改為文字?

Linda Hamilton
發布: 2024-11-16 05:08:03
原創
688 人瀏覽過

Why Can't I Change an Input Field's 'type' from Password to Text with jQuery?

使用jQuery 更改輸入欄位的類型:為什麼它可能不起作用

嘗試將輸入欄位從密碼類型修改為密碼類型時使用jQuery 的文字類型,您可能會遇到更改未生效的問題。

這是有問題的代碼:

$(document).ready(function() {
    // #login-box password field
    $('#password').attr('type', 'text');
    $('#password').val('Password');
});
登入後複製

此代碼旨在更改帶有id 的輸入字段將“password”添加到文本字段,然後用文本“Password”填充它。但是,由於瀏覽器的安全模型,它可能會失敗。

在 Safari 中測試顯示錯誤,指示類型屬性無法變更。 jQuery 原始程式碼也支援這一點,其中包含一個檢查:

if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )
    throw "type property can't be changed";
登入後複製

此檢查可防止更改 Internet Explorer 中輸入欄位的類型屬性。目前尚不清楚這是錯誤還是安全設計選擇。

要解決此問題,您可以使用本機 DOM 操作而不是 jQuery。操作方法如下:

var pass = document.createElement('input');
pass.type = 'password';
document.body.appendChild(pass);
pass.type = 'text';
pass.value = 'Password';
登入後複製

此程式碼將成功將輸入欄位變更為文字類型並用指定的值填滿它。

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

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