Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 清除密码字段_Javascript_Jquery_Html - Fatal编程技术网

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)
    });  

});