Mengapa Saya Tidak Boleh Mengubah Jenis Medan Input dengan Amanah dengan jQuery?

Susan Sarandon
Lepaskan: 2024-11-15 18:56:02
asal
437 orang telah melayarinya

Why Can't I Reliably Change Input Field Types with jQuery?

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');
});
Salin selepas log masuk

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';
Salin selepas log masuk

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";
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan