Javascript 清除密码字段
不幸的是,上述操作会重置表单中的所有其他文本字段,这是不可取的。而且Javascript 清除密码字段,javascript,jquery,html,Javascript,Jquery,Html,不幸的是,上述操作会重置表单中的所有其他文本字段,这是不可取的。而且 $(document).ready(function(){ $('input:text').val(''); }); 不行! 此外,我试过: $(document).ready(function(){ $('input:password').val(''); }); 这也不起作用。 我重申,这个问题只存在于Mozilla中。我还能做什么 谢谢$(“#e#u密码”)。val(“”)在firefox
$(document).ready(function(){
$('input:text').val('');
});
不行!
此外,我试过:
$(document).ready(function(){
$('input:password').val('');
});
这也不起作用。
我重申,这个问题只存在于Mozilla中。我还能做什么
谢谢$(“#e#u密码”)。val(“”)在firefox中为我工作。你能试试这个吗
$('#e_password').val('');
纯Javascript:
$("#e_password").attr("value","")
或者使用jQuery:
document.getElementById('e_password').value = '';
必须为form
元素设置autocomplete=“off”
,而不是input
$('#e_password').attr('value','');
....
或
我可能错了,但我想这根本不是一个代码问题!!。可能是浏览器中保存的密码。例如,当您在chrome中打开页面时,只需查看omnibox的右上角,您就可以单击十字来删除该页面保存的密码。我猜这是因为你说它只出现在mozilla中,而不是其他浏览器中。我找到了
$('input[type="password"]#e_password').val('');
希望上述方法能奏效。然而,我不能给出一个令人满意的解释,为什么这个小小的延迟解决了这个问题……很可能,这是一个Mozilla bug。这是一个老问题,但我用了一种尚未提及的方式。这是在尝试了这个线程中的几乎所有建议之后(除了超时,因为我不想在我的页面中添加任何不必要的延迟) 我看到的问题是,当浏览器自动填充密码字段时,没有设置该值。所以
setTimeout(function(){ $('#e_password').val('');}, 50);
将不起作用,因为该值已为“”
所以我用了两行
$('#password').val("");
我将值设置为某个值,以便清除它。然后清除浏览器自动填充字段
希望这有助于其他人 FF在自动填充时使用“更改”事件(至少在v51中)
试试像这样的东西
$('#password').val("a");
$('#password').val("");
//如果您的输入是html格式的
$(文档).ready(函数(){
/*//如果您从这样的代码创建输入
$(“body”).html(“”).promise().done(函数(){
*/
$(“#e_password”)。在(“更改”上,函数(){//追加此事件
$(“#e#u password”).off(“change”)//可选,具体取决于您的代码
$(“#e#u密码”).val(“”);//清除
$(“#e#u password”).attr(“value”,”;//清除#2(只是为了确保)
});
});
这是难以置信的;但是,以下建议的解决方案都不起作用!当然这是Mozilla密码的问题,我想用代码来克服它。目前这似乎是不可能的。我仍然无法理解为什么唯一有效的方法是$('input:text').val(''),以及如何使它仅影响“eοpassword”…还有一个细节。如果尝试分配与“”不同的内容,例如$(“#e#u password”).val('12q'),则一切正常!!!
$('input[type="password"]#e_password').val('');
setTimeout(function(){ $('#e_password').val('');}, 50);
$('#password').val("");
$('#password').val("a");
$('#password').val("");
// if your input is in html
$(document).ready(function(){
/* // if you create input from code like this
$("body").html('<input class="password" type="password" id="e_password">').promise().done(function(){
*/
$("#e_password").on("change", function() { //append this event
$("#e_password").off("change"); //optional, depends on your code
$("#e_password").val(''); //clear
$("#e_password").attr("value",""); //clear #2 (just to be sure)
});
});