gpt4 book ai didi

javascript - 禁用按钮 onclick 事件触发

转载 作者:行者123 更新时间:2023-11-30 09:22:39 25 4
gpt4 key购买 nike

我在页面上有一个按钮,如果没有选中任何复选框,该按钮将被禁用 enter image description here

如果一个复选框被选中,该按钮将被启用。这工作正常,但点击事件仍然会触发,即使按钮已启用。

这是我点击复选框时的代码

 $(document).on('click', '.damageCheckbox', function () {

//$("#btnDamageInvoiceShow").removeClass("disabled");

var idSelector = function () { return this.id; };
var selectedDamages = $(":checkbox:checked").map(idSelector).get();

if (selectedDamages.length > 0)
{
$("#btnDamageInvoiceShow").removeClass("disabled");
$('#btnDamageInvoiceShow').prop("disabled", false);
}
else {
$("#btnDamageInvoiceShow").addClass("disabled");
$('#btnDamageInvoiceShow').prop("disabled", true);
}
console.log(selectedDamages);
.....

这是我按下按钮时的 javascript:

 $("body").on("click", ".btnDamageInvoiceShow", function (e) {

var idSelector = function () { return this.id; };
var selectedDamages = $(":checkbox:checked").map(idSelector).get();
console.log(selectedDamages);

var baseUrl = '@Url.Action("ShowDamageInvoice", "TimberMonitor", new { Area = "" })';
var url = baseUrl + '?' + $.param({ damageIds: selectedDamages }, true);
location.href = url;
});

我已经尝试通过添加来解决问题:

$('#btnDamageInvoiceShow').prop("disabled", false);

我试过这种方式:

$("body").on("click", ".btnDamageInvoiceShow:disabled", function (e) {

但是这样按钮的 onclick 事件永远不会触发。

最佳答案

向点击事件处理程序添加检查以确保按钮未被禁用。

$("body").on("click", ".btnDamageInvoiceShow", function (e) {
if (e.target.disabled) { // or this.disabled
return;
}

// ...
});

如果没有帮助,则该按钮实际上并未被禁用,您需要检查应该禁用该按钮的代码。

还要确保按钮是 <button/><input/>而不是 <a/><span/>因为disabled属性仅适用于表单标签。

关于javascript - 禁用按钮 onclick 事件触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50578189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com