【发布时间】:2021-08-31 22:01:23
【问题描述】:
我想检测何时单击 div 中的按钮,该 div 具有多个按钮,这些按钮的作用类似于移动优化应用程序的复选框。
这就是我所拥有的 HTML:
当它只是普通的复选框而不是像复选框这样的按钮时,我能够使用这个脚本实现我想要的:
$(document).on('change', 'input:checkbox.modifier', function () {
var totalChecked = $("#modifiersDiv :checkbox:checked").size();
var maximum = parseInt($('#Maximum').val());
if (totalChecked === maximum) {
$("#modifiersDiv :checkbox:not(:checked)").attr("disabled", true);
} else {
$("#modifiersDiv :checkbox:not(:checked)").attr("disabled", false);
}
});
现在我正在尝试这样的事情,只是为了看看该功能是否会被触发但没有成功:
$(document).on('click', 'input:button.modifier', function () {
});
底线是我想在选择 5 个按钮时使用 jQuery 进行检测,然后我需要禁用 div 中的其他按钮,直到用户不会取消选择某些按钮。
更新
我用于按钮的代码:
var startDiv = "<div class='btn-group btn-block' data-toggle='buttons'>";
var checkBox = '';
$.each(data.modifierOptions, function(key, item) {
checkBox += "<label class='btn btn-checkbox btn-block' style='margin-bottom:2px;'><input type='checkbox' data-quantity='1' class='modifier' data-itemid='" + itemid + "' data-name='" + item.Name + "' data-price='" + item.Price + "' name='" + item.Name + "' value='" + item.ID + "'/>" + item.Name + " </label><br />";
});
var endDiv = "</div>";
var totalDiv = startDiv + checkBox + endDiv;
$(totalDiv).appendTo('#modifiersDiv');
【问题讨论】:
-
在您向我们展示的 HTML 中,我没有看到任何
input类型为button。你能给我们你正在处理的 HTML 吗?另外我的猜测是,您可能正在使用 Boostrap 在您的代码中添加一个input type button作为复选框,是吗? -
你能显示按钮元素的代码吗?
-
为按钮元素添加了代码。 @rorofromfrance,是的,我正在使用引导程序,谢谢
-
您添加的代码仍然使用
inputw/ typecheckbox.. 那么您为什么要将点击事件绑定到input:button呢? -
为了能够选择最多 n 个值的多个选项,请检查屏幕截图 i.gyazo.com/ee6388f8d84ff42f8ae72be9535b88bf.png 例如,如果单击了 5 个按钮,我希望禁用该 div 中的其余按钮 @ 987654322@
标签: javascript html jquery jquery-ui jquery-events