6

我使用对话框来获取用户输入,但我发现用户可能会单击双击按钮并添加两次内容,原因是对话框淡出太慢或用户单击鼠标两次..我不想要调整淡出速度,相反,如何启用按钮只能单击一次?

4

6 回答 6

16

jQuery 提供one()方法来注册一个只运行一次的一次性处理程序。

你可以写:

$("#yourButton").one("click", function() {
    // Add content...
});
于 2013-09-27T15:06:51.113 回答
9

您可以在单击按钮后禁用该按钮以防止进一步单击:

$('button').on('click', function() {
    $(this).prop('disabled', true);
});
于 2013-09-27T14:59:27.877 回答
3

这是我的建议。如果要在退出时销毁对话框,只需取消绑定单击事件

$('.my-button').on('click', function(){
    // process code
    $(this).off('click');
});

你可以在这里阅读

这是一个演示。第一个不允许其他点击,但第二个会。

资源

于 2013-09-27T15:01:56.803 回答
1

这是一个Plunker,它展示了如何做到这一点。您几乎需要做的就是在按钮中添加以下行:

onClick="this.disabled = true;"

这样您的按钮 HTML 将如下所示:

<button type="submit" onClick="this.disabled = true;">Submit</button>
于 2013-09-27T15:09:09.657 回答
1

尝试这个:

    $('.myButton').click(function(){ 

        $(this).attr('disabled',true);

             ....
    })
于 2017-05-17T11:20:59.450 回答
0

用css试试这个

$("#yourButton").one("click", function() {
     $(this).css('pointer-events', 'none');
})
于 2020-12-17T10:35:40.057 回答