3

我正在尝试使用 jquery 编写一个 javascript,它应该能够挑选并使用有关是否选中复选框的信息。每次单击复选框(具有 id 'edit-toggle-me')时都会发生这种情况。我为此编写了一个测试函数,其中包含一些 alert() 来查看我是否成功。

(function ($) {
    "use strict";
    $(document).ready(function () {

        $('#edit-toggle-me').click(function(){

            if ($('#edit-toggle-me').checked()) {
                alert('Yup!');
            }
            else {
            alert('Nup!');
            }


        });
    });

})(jQuery);

它不执行任何警报,所以我猜它会在 $('#edit-toggle-me').checked() 处崩溃。我不知道为什么。

我也试过这个:

(function ($) {

    $(document).ready(function () {

        $('#edit-toggle-me').click(function(){
            var elementy = document.getElementById('edit-toggle-me');
            var check = elementy.value;
            alert(check);
            if(elementy.checked()) {
                alert('yup');
            }
        });
    });
})(jQuery);

第一个警报有效,但最后两个“yup”或“nup”都没有。

然后我也试过这个:

(function ($) {

     $(document).ready(function () {

        $('#edit-toggle-me').click(function(){

            var element2 = document.getElementById('edit-toggle-me');
            var check = element2.value;
            alert(check);

        });
    });
   })(jQuery);

这总是返回 1。我也不明白为什么。

感谢任何提示。

4

4 回答 4

5

使用.is(':checked'). 您可以在此处找到文档。

JSFIDDLE

于 2012-08-13T13:27:13.477 回答
4

.checked()在 jQuery 或 DOM API 中没有这样的方法。元素上只有一个.checked属性,true如果元素被选中,false否则。试试这个:

(function ($) {
    "use strict";
    $(document).ready(function () {

        $('#edit-toggle-me').click(function(){
            alert( this.checked ? ":)" : ":(" );
        });
    });

})(jQuery);

见演示:http: //jsfiddle.net/scZ3X/

于 2012-08-13T13:27:08.920 回答
1
$(function(){
    $('#edit-toggle-me').on('change', function(){
        if($(this).is(':checked')) {
            alert('checked');
        }
        else {
            alert('unchecked');
        }
    });
});

您应该使用“更改”事件而不是单击。因为在某些情况下,单击事件不适合在复选框和单选按钮中使用。

示例 1:

如果你有一个单选按钮有点击事件绑定。如果您的单选按钮已经为真并且您单击单选按钮。它不会改变单选按钮的值,但你的点击事件每次都会触发。

但是,如果您使用更改事件。只有当您的单选按钮值发生更改时,您的事件才会触发(如果它尚未选中或为真)

示例 2: 如果您有任何单选按钮或复选框的标签。如果您在复选框或单选按钮中有单击事件绑定。单击您的标签时,您的复选框或单选按钮值会发生变化,但您的点击事件不会调用。

万一发生变化。单击标签相关标签时,它也会按预期工作。

于 2012-08-13T13:54:44.243 回答
0

试试这个:

$('#edit-toggle-me').is(':checked')
于 2012-08-13T13:31:52.507 回答