javascript - 使用 jQuery 暂时禁用按钮

标签 javascript jquery

我想禁用按钮元素而不删除监听器,例如我有以下代码:

<input id="in" />
<button id="sub">Submit</button>

$('#sub').click(function (e) {
    //Some actions
});


$($('#in').keyup(function (e) {
    if (new Date($(this).val()) == 'Invalid Date') {
        $(this).addClass('invalid');
        $('#sub').addClass('disabled');
    }
    else {
        $(this).removeClass('invalid');
        $('#sub').removeClass('disabled');

    }
});

我想取消绑定(bind)按钮点击监听器,但如果我使用 off()unbind() 我将不得不“重新绑定(bind)”它在 else 子句中。

有更好的方法吗?

最佳答案

禁用按钮而不是添加类怎么样?

HTML:

<button>Disable Me</button>

JS

$(function() {
    $("button").click(function() {
        alert("click!");
       $(this).prop("disabled", true); 
    });
});

CSS

button[disabled] {
 color: red;
}

Here是一个 jsFiddle 来演示。

关于javascript - 使用 jQuery 暂时禁用按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18186147/

相关文章:

javascript - jQuery - 如何在另一个范围内调用一个函数

javascript - 无法将参数从命令传递到 grunt 文件

javascript - jquery - ajax 加载内容上的日期选择器(颜色选择器等)

javascript - html jquery 函数对 keydown 事件不起作用?

Javascript 事件

javascript - 如何在移动 View css 中相互交换 div

javascript - app.use ("/", express.static) 和 app.use(express.static) 之间有区别吗?

javascript - 如何停止 webdriver 而不导致 Node js 崩溃

javascript - NgModel 没有反射(reflect)从下拉列表中选择的值,该下拉列表的值是根据另一个下拉列表填充的

jQuery animate.css 仅在 Firefox 上无法正常工作