我查看了stackoverflow和其他网站,但找不到我要找的答案。
我有一个按钮,我希望用户只能点击一次。这是我的javascript / jquery触发click事件。但是我怎么能强迫它只能点击一次呢?
$(document).ready(function () {
//var $new_total = $('#gtotal').val();
$('#a_is_valid').click(function () {
if ($('#code_promo').val() == 'theCode') {
$('#gtotal').val($('#gtotal').val() - ($('#gtotal').val() - (($('#gtotal').val() * .75))));
}
})
})
答案 0 :(得分:7)
使用jQuery的.one()
函数。
$('#a_is_valid').one('click', function(){
if ($('#code_promo').val() == 'theCode')
{$('#gtotal').val($('#gtotal').val()-($('#gtotal').val()-(($('#gtotal').val()*.75))));
}
答案 1 :(得分:6)
您可以使用jquery .one() 这将确保click事件只发生一次。
$('#a_is_valid').one('click', function(){
if ($('#code_promo').val() == 'theCode')
{
var gtot = $('#gtotal').val();
$('#gtotal').val(gtot -(gtot -(gtot *.75)));
}
});
$('#a_is_valid').on('click', handleClick);
function handleClick() {
var gtot = $('#gtotal').val();
$(this).off('click');
if ($('#code_promo').val() == 'theCode') {
$('#gtotal').val( gtot - (gtot-(gtot * 0.75)) );
}
}
答案 2 :(得分:2)
为什么不使用.one()
代替.click()
?
答案 3 :(得分:0)
使用现代JS!
const button = document.getElementById("a_is_valid");
button.addEventListener("click", function() {
// Add one-time callback
}, {once : true});
你也可以禁用按钮:
button.disabled = true;