Menukar Jenis Medan Input dengan jQuery: Isu Disemak Semula
Dalam percubaan untuk mengubah jenis medan input daripada kata laluan kepada teks dan tetapkan nilai lalai, coretan jQuery berikut mungkin gagal:
$(document).ready(function() { $('#password').attr('type', 'text'); $('#password').val('Password'); });
Setelah pemeriksaan lebih dekat, isu ini timbul daripada langkah keselamatan penyemak imbas, yang sering melarang tindakan sedemikian.
Untuk menunjukkan pengehadan ini, pertimbangkan coretan berikut, yang mencipta medan input kata laluan dan cuba menukar jenisnya kepada teks:
var pass = document.createElement('input'); pass.type = 'password'; document.body.appendChild(pass); pass.type = 'text'; pass.value = 'Password';
Dalam senario ini, operasi berjaya tanpa masalah. Walau bagaimanapun, selepas memeriksa kod sumber jQuery, kami menemui kes khusus yang berkaitan dengan Internet Explorer:
// 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";
Ini menunjukkan bahawa ia mungkin pepijat penyemak imbas atau ciri keselamatan yang disengajakan dalam Internet Explorer. Oleh itu, menukar jenis medan input melalui jQuery mungkin bukan penyelesaian yang boleh dipercayai dalam semua kes.
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Mengubah Jenis Medan Input dengan Amanah dengan jQuery?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!