使用jquery取消选中检测复选框

时间:2014-04-17 16:09:20

标签: javascript jquery html jquery-ui checkbox

我正在尝试检测何时在jquery中选中或取消选中复选框。 我正在从json内容动态创建复选框。 这就是它们的创建方式:

$.each(data.modifierOptions, function(key, item) {
                            var checkBox = "<input type='checkbox' class='modifier' data-name='" + item.Name + "' + data-price='" + item.Price + "' name='" + item.Name + "' value='" + item.ID + "'/>" + item.Name + "<br/>";
                            $(checkBox).appendTo('#modifiersDiv');
                        });      

现在,查看身体的来源我得到了这个:

enter image description here

最后,我正在尝试使用此jquery事件获取已检查/未检查的事件,但没有任何反应:

$('input:checkbox.modifier').change(function () {
            var sThisVal = (this.checked ? $(this).val() : "");
        });

知道如何解决这个问题吗?

提前致谢,Laziale

更新:

我想通过复选框类获取事件。 感谢

3 个答案:

答案 0 :(得分:3)

  

事件处理程序仅绑定到当前选定的元素;他们   在您的代码调用.click()

时,页面上必须存在

在动态添加内容时,您应该使用

$(document).on('change', 'input:checkbox.modifier',  function () {
     var sThisVal = (this.checked ? $(this).val() : "");
});

了解委派活动。

答案 1 :(得分:1)

尝试使用on event

进行编码
 $(document).on('change', 'input:checkbox.modifier',  function () {
        var sThisVal = $(this).is(':checked') == true ? $(this).val() : "";
    });

答案 2 :(得分:1)

当你动态创建复选框时,你必须像这样设置事件处理程序:

$(document).on("change", "input[type='checkbox'].modifier", function () {
    var sThisVal = (this.checked ? $(this).val() : "");
});