0

この jQuery 関数は、チェックされalert(isChecked)ていない場合でも、常に true を返します:
pls note .accrualCheckbox は Div のクラス名であり、チェック ボックスに設定されているクラスではありません。コード if ($(this).prop('checked', 'checked')) を削除したところ、常に「false」として返されるようになりました

$('.accrualCheckbox').click(function () {
    var isChecked = $(this).attr('checked') ? true : false;
    alert($(this).attr('checked'));
    alert(isChecked);
    if ($(this).prop('checked', 'checked')) {
        var parentDiv = $(this).parents('.searchLine');
        $(parentDiv).css('border', '1px solid red');

        //Checkbox
        $(parentDiv).find("input[type=text]").each(function () {
            $(this).val('B');
            $(this).prop('disabled', true);
        });
    }
});
});

チェックボックスをdivに保持しました:

<div class="accrualCheckbox">
    @Html.CheckBox("chkSalesAndMarketing")
</div>   
4

2 に答える 2

3

prop()の代わりに使用する必要があるattr()か、次のこともできます。

var isChecked = $(this).is(':checked');

ただし、条件内にif ($(this).prop('checked', 'checked'))値を設定しているため、これは常にtrueを返しますchecked

更新 これがあなたがやりたいことだと思います:

$('.accrualCheckbox :checkbox').click(function () {
    if ($(this).is(':checked')) {  // or $(this).prop('checked');
        var parentDiv = $(this).closest('.searchLine');
        $(parentDiv).css('border', '1px solid red');
        //Checkbox
        $(parentDiv).find(":text").each(function () {
            $(this).val('B');
            $(this).prop('disabled', true);
        });
    }
});
于 2013-08-21T18:06:59.530 に答える
1

$(this).prop('checked')の代わりに使用しattr()ます。

こちらの属性とプロパティのセクションを参照してください: http://api.jquery.com/prop/

于 2013-08-21T18:00:18.473 に答える