【发布时间】:2014-07-29 18:00:11
【问题描述】:
我正在尝试实现一个简单的“显示密码”切换复选框,以便在按住鼠标时显示纯文本密码,一旦松开它就会恢复为密码字段。
我已经让input 字段的切换正常工作,但是我也使用复选框来显示切换状态,我可以选中mousedown 上的框但是我尝试取消选中盒子不太好用。
这是我到目前为止所得到的;
var pwi = $('#new_pass');
$('.pw_show').on('mousedown', function () {
$('.pw_show input').prop('checked', true);
pwi.prop('type', 'text');
});
$('.pw_show').on('mouseup', function () {
pwi.prop('type', 'password');
setTimeOut(function() {
$('.pw_show input').prop('checked', false);
}, 50);
});
这几乎可以工作,但是如果用户快速双击然后他们可以打破它留下选中的复选框。 有没有更好的方法来做到这一点?
【问题讨论】:
-
您可以在删除
mouseup事件中的SetTimeOut()函数调用后尝试。 -
函数名是
setTimeout而不是setTimeOut。另请注意,出于安全原因,大多数浏览器不允许更改输入的type属性。 -
@undefined doh!这足以解决它......我很傻
-
应该在复选框上使用 'change' 监听器,而不是 'mousedown' 和 'mouseup'
-
@Haketo 大概只有在单击并松开后才会起作用,因为默认情况下复选框状态在释放鼠标单击之前不会改变。
标签: javascript jquery html checkbox