jQuery: Tidak Dapat Menukar Jenis Input Kata Laluan
Isu ini berlaku apabila cuba menukar jenis medan input kata laluan kepada teks menggunakan jQuery, tetapi gagal untuk dilaksanakan. Kod yang dimaksudkan:
$(document).ready(function() { $('#password').attr('type', 'text'); $('#password').val('Password'); });
Punca dan Penyelesaian
Tingkah laku ini berkemungkinan besar merupakan langkah keselamatan yang dilaksanakan oleh penyemak imbas. Mengikut kod sumber jQuery:
// We can't allow the type property to be changed (since it causes problems in IE) if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode ) throw "type property can't be changed";
Untuk IE dan kemungkinan pelayar lain, menukar jenis medan input (terutamanya yang sensitif seperti kata laluan) tidak dibenarkan.
Penyelesaian
Satu penyelesaian ialah menggunakan kod DOM lurus:
var pass = document.createElement('input'); pass.type = 'password'; document.body.appendChild(pass); pass.type = 'text'; pass.value = 'Password';
Atas ialah kandungan terperinci Mengapa jQuery Tidak Boleh Menukar Jenis Medan Input Kata Laluan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!