[英]JavaScript - uncheck check box on mouseup
我正在嘗試實現一個簡單的“顯示密碼”切換復選框,以便在按住鼠標的同時顯示純文本密碼,放開它后,它將還原為密碼字段。
我已經使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);
});
這幾乎可以用,但是如果用戶快速雙擊,則可以將其斷開 ,而選中復選框。 有一個更好的方法嗎?
用這個:
$(".pw_show input").attr("checked","");
它可以正常工作,但這僅適用於.pw_show
。 因此,如果將mouseup
在另一層上,它將無法正常工作。 我注意到您的輸入的寬度不穩定。
您可以使用removeAttr:
$(".pw_show input").removeAttr("checked");
在jquery中使用change事件檢查一個復選框,基於您更改文本框的類型
var pwi = $('#new_pass');
$('.pw_show').find("input[type=checkbox]").on('change', function () {
pwi.prop("type", (this.checked) ? "text" : "password");
});
如果要向下和向上移動鼠標,請像這樣使用
var pwi = $('#new_pass');
$('.pw_show').find("input[type=checkbox]").mousedown('change', function () {
pwi.prop("type", "text" );
});
$('.pw_show').find("input[type=checkbox]").mouseup('change', function () {
pwi.prop("type", "password");
});
我的代碼的問題是setTimeout
函數的拼寫。 解決此問題后,我添加了一個很小的延遲,允許選中復選框並在單擊保持和釋放時取消選中該復選框。
$('.pw_show').on('mouseup', function () {
pwi.prop('type', 'password');
setTimeout(function() {
$('.pw_show input').prop('checked', false);
}, 50);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.