清除密码字段

时间:2015-07-25 08:45:42

标签: javascript jquery html

DataTemplateSelector

以上是一个密码字段,出于某种原因,仅在Mozilla(不在Chrome和IE11中)中自动填充。显然它保留了先前试验的价值领域。我试着清理这个领域。我可以管理的唯一方式是:

<input name="e_password" id="e_password" type="password" autocomplete="off" />

不幸的是,上面的内容会重置表单中的所有其他文本字段,这是不合需要的。另外,

$(document).ready(function(){      
  $('input:text').val(''); 
});

不起作用! 而且,我试过这个:

$(document).ready(function(){
    $('input:password').val('');
}); 

也不是,这有效...... 当然,我尝试了显而易见的事实:

<div class="abc">   
   <input name="e_password" id="e_password" type="password" autocomplete="off" />
</div>

$(document).ready(function(){
    $('.abc input:text').val('');    
});

这也没用。 我再说一遍,问题只存在于Mozilla中。我还能做什么?

谢谢

8 个答案:

答案 0 :(得分:3)

我找到了!!

setTimeout(function(){ $('#e_password').val('');}, 50);

希望以上作品。但是,我不能给出一个令人满意的解释,为什么这个小延迟解决了这个问题......最有可能的是,这是一个Mozilla bug。

答案 1 :(得分:2)

document.getElementById("e_password").value = "";

$('input[type="password"]#e_password').val('');

答案 2 :(得分:0)

$(&#34;#e_password&#34;)。val(&#39;&#39;)适用于firefox。你能尝试一下吗?

$("#e_password").attr("value","")

答案 3 :(得分:0)

Pure Javascript:

document.getElementById('e_password').value = '';

或者使用jQuery:

$('#e_password').attr('value','');

答案 4 :(得分:0)

必须为autocomplete="off"元素而不是form

设置

input

<form autocomplete="off">
    ....
</form>

答案 5 :(得分:0)

我可能错了,但我想这根本不是代码问题!!它可能是浏览器中保存的密码。例如,当您在chrome中打开页面时,只需检查多功能框的右上角,然后单击十字以删除该页面的已保存密码。我猜这是因为你说它只出现在mozilla而不是其他浏览器中。

答案 6 :(得分:0)

这是一个老问题,但我这样做的方式尚未提及。这是在尝试了这个线程中的几乎所有建议之后(除了超时,因为我不想在我的页面中添加任何不必要的延迟)。

我看到的问题是当浏览器自动填写密码字段时,未设置该值。所以

$('#password').val("");

不起作用,因为该值已经是“”。

所以我用2行做了。

$('#password').val("a");
$('#password').val("");

我将值设置为某个值,以便我可以清除它。然后清除浏览器自动填充字段。

希望这有助于那里的人!

答案 7 :(得分:0)

FF正在使用&#34;更改&#34;自动填充时的事件(至少在v51中)。

尝试类似

的内容
// 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)
    });  

});