1

我有一个带有多个复选框的表单。我还有以下代码来返回这些复选框的状态。

A) 返回“未定义”
B) 无论是否选中,都返回“on”。
C,D)如果我只检查C,那么它也会将D设置为“true”。我只希望C为“true”。

$('#button').click(
function() {

    var A = $('#id_a').attr('checked');
    var B = $('#id_b').val();
    var C = $('#id_c').is(':checked');
    var D = $('#id_d').is(':checked');

    $.ajax({
            url: "test.php",
            type: "GET",
            data: "&A="+A+"&B="+B+"&C="+C+"&D="+D,
            success: function(data) {
                $('#display').html(data);   
            }
         });
}

);

提前致谢

4

3 回答 3

1

jQuery 的.prop()方法将返回一个布尔值"checked"

这是.prop()over的好处.attr(),它.prop()返回适合输入的值类型,同时.attr()返回通过 HTML 存储的内容。

.prop()在 1.6 中被添加到 jQuery。

于 2013-08-01T21:28:45.303 回答
0

尝试这个:

http://jsfiddle.net/49XDM/1/

var A = $('#id_a').prop('checked');
var B = $('#id_b').prop('checked');
var C = $('#id_c').prop('checked');
var D = $('#id_d').prop('checked');

请参阅http://api.jquery.com/prop/并查看“属性与属性”部分。它实际上谈论了“检查”属性。

于 2013-08-01T21:30:09.583 回答
0

如果我只检查 C,那么它也会将 D 设置为“true”。我只希望 C 为“true”。

.is(':checked')总是返回一个布尔值,如果你遇到问题,问题就出在其他地方。

$('#button').on('click', function() {
    var data = {};
    $.each(['a','b','c','d'], function(_,el) {
        data[el.toUpperCase()] = $('#id_'+el).is(':checked');
    });

    $.ajax({
        url : "test.php",
        data: data
    }).done(function(result) {
        $('#display').html(result);
    });
});

小提琴

于 2013-08-01T21:31:09.217 回答