Rumah > hujung hadapan web > tutorial js > Mengapa Saya Tidak Boleh Menukar \'jenis\' Medan Input daripada Kata Laluan kepada Teks dengan jQuery?

Mengapa Saya Tidak Boleh Menukar \'jenis\' Medan Input daripada Kata Laluan kepada Teks dengan jQuery?

Linda Hamilton
Lepaskan: 2024-11-16 05:08:03
asal
689 orang telah melayarinya

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

Tukar Jenis Medan Input dengan jQuery: Mengapa Ia Mungkin Tidak Berfungsi

Apabila cuba mengubah suai medan input daripada jenis kata laluan kepada jenis teks menggunakan jQuery, anda mungkin menghadapi isu di mana perubahan tidak berkuat kuasa.

Ini kod yang dimaksudkan:

$(document).ready(function() {
    // #login-box password field
    $('#password').attr('type', 'text');
    $('#password').val('Password');
});
Salin selepas log masuk

Kod ini bertujuan untuk menukar medan input dengan id daripada "kata laluan" ke medan teks dan kemudian isikannya dengan teks "Kata Laluan." Walau bagaimanapun, ia mungkin gagal disebabkan oleh model keselamatan penyemak imbas.

Ujian dalam Safari menunjukkan ralat yang menunjukkan bahawa sifat jenis tidak boleh ditukar. Ini juga disokong oleh kod sumber jQuery, yang mengandungi semakan:

if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )
    throw "type property can't be changed";
Salin selepas log masuk

Semakan ini menghalang sifat jenis daripada ditukar untuk medan input dalam Internet Explorer. Tidak jelas sama ada ini pepijat atau pilihan reka bentuk keselamatan.

Untuk mengatasi isu ini, anda boleh menggunakan manipulasi DOM asli dan bukannya jQuery. Begini caranya:

var pass = document.createElement('input');
pass.type = 'password';
document.body.appendChild(pass);
pass.type = 'text';
pass.value = 'Password';
Salin selepas log masuk

Kod ini akan berjaya menukar medan input kepada jenis teks dan mengisinya dengan nilai yang ditentukan.

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menukar 'jenis' Medan Input daripada Kata Laluan kepada Teks 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