0

jQueryを使用して要素の属性を更新することができません。

HTML:

<input type="checkbox" name="row1" value="" >

jQuery:

$(document).ready(function (event) {
    $("input[type='checkbox']").change(function (e) {
        var name = $(this).attr('name');
        // grab name of original
        var value = $(this).attr('value');
        // grab value of original
        var ischecked = $(this).is(":checked");
        //check if checked
        if (!ischecked) {
            $('#' + name).removeAttr("checked");
            alert("removed attr ");
        } else {

            $('#' + name).attr("checked", "checked");
            alert($('#' + name).attr("checked"));

        }

    });
});

チェックするとアラート「未定義」が表示されます。

4

4 に答える 4

2

$('#' + name)に変更$(this)

$('#'+name).removeAttr("checked");

$(this).removeAttr("checked");

jQuery 1.6 以降を使用している場合は、

$(this).prop("checked", false);
于 2013-02-22T11:52:32.550 に答える
1

このように変更してみてください: jsbin を確認してください

$(document).ready(function (event) {
  $("input[type='checkbox']").change(function (e) {
    var name = $(this).attr('name');
    var value = $(this).val();
    var ischecked = $(this).is(":checked");

    if (!ischecked) {
        $(this).prop("checked", false);
        alert("removed attr ");
    } else {
        $(this).prop("checked", true);
        alert($(":checked").val());
    }

  });
});

shows up an alert 'undefined' when i check.

これは、代わりに値をチェックしようとしていないためです。you can check the length of the **$(':checked')**

alert($(":checked").length);

これを確認しようとすると:

alert($(":checked"));

あなたは[object object]警戒します。

于 2013-02-22T11:58:44.727 に答える
0

「#」はIDには機能しますが、名前には機能しません

<input type="checkbox" name="row1" id="row1" value="" >

またはこれを使用して参照を取得します。

于 2013-02-22T11:53:55.797 に答える
0

セレクターが間違っています。チェックボックスに ID が設定されていません。次のようになります。

$("input[name='"+name+"']").removeAttr("checked");
于 2013-02-22T11:55:09.983 に答える