1

ラジオボタンのリセットとチェックに2つの問題があります。

第1号。

  • このボタンから(1行目)ラジオボタンをチェックまたは選択します Check Option 1, Check Option 2, Check Option 3

  • 初めてのみ正常に動作します。たとえば、ボタンをクリックするCheck Option 1, Check Option 2, Check Option 3と、その値に応じてラジオボタンが正しくチェックされます。

  • もう一度ボタンをクリックすると、Check Option 1, Check Option 2, Check Option 3機能しません。

2号。

  • をクリックして、デフォルトのチェック済みの値にリセットする必要がありますReset button。たとえば、2 行目を参照してください。

  • で確認したところ、リセットが機能していませんCheck Option 1, Check Option 2, Check Option 3。手動でチェックすると、正常に動作します。

  • しかし$('input[name=rdoSample][value=' + value.Rdovalue + ']').attr('checked', 'checked');、私はデータベースから値を取得しており、その値に従ってチェックする必要があるため、使用しています。

    フィドルのデモ

    <title>Testing</title>
    <script src="scripts/jquery-1.10.1.min.js" type="text/javascript"></script>
    <script type="text/javascript">
    
        $(document).ready(function() {
    
            $('#btnReset').click(function() {
                $('input[type=radio]').prop('checked', function() {
                    return this.getAttribute('checked') == 'checked';
                });
            });
    
            $('#btnCheck1').click(function() {
                $('input[name=rdoSample][value="a"]').attr('checked', 'checked');
    
            });
    
            $('#btnCheck2').click(function() {
                $('input[name=rdoSample][value="b"]').attr('checked', 'checked');
            });
    
            $('#btnCheck3').click(function() {
                $('input[name=rdoSample][value="c"]').attr('checked', 'checked');
            });
    
        });
    
    </script>
    

    <div>
        <table cellpadding="0" cellspacing="0" border="1">
            <tr>
                <td>
                    1)
                </td>
                <td>
                    <input type="radio" name="rdoSample" value="a" checked="checked" />
                    a
                    <input type="radio" name="rdoSample" value="b" />
                    b
                    <input type="radio" name="rdoSample" value="c" />
                    c
                </td>
                <td>
                    <input type="button" value="Check Option 1" id="btnCheck1" />
                    <input type="button" value="Check Option 2" id="btnCheck2" />
                    <input type="button" value="Check Option 3" id="btnCheck3" />
                </td>
            </tr>
            <tr>
                <td>
                    2)
                </td>
                <td>
                    <input type="radio" name="rdoSample1" value="11" checked="checked" />
                    11
                    <input type="radio" name="rdoSample1" value="22" />
                    22
                    <input type="radio" name="rdoSample1" value="33" />
                    33
                </td>
            </tr>
            <tr>
                <td colspan="3" align="center">
                    <input type="button" value="Reset" id="btnReset" />
                </td>
            </tr>
        </table>
    </div>
    

4

2 に答える 2

4

このようにチェックされたプロパティを変更するprop代わりに使用します。attr

$('input[name=rdoSample][value="a"]').prop('checked', 'checked');

JSフィドル

于 2013-06-20T07:27:40.037 に答える
1

に置き換える必要が.attr("checked",...あり.prop("checked,...ます。

属性とプロパティには違いがあります。jQuery ドキュメントの引用:

ただし、checked 属性について覚えておくべき最も重要な概念は、checked プロパティに対応していないということです。この属性は実際には defaultChecked プロパティに対応し、チェックボックスの初期値を設定するためにのみ使用する必要があります。checked 属性値はチェックボックスの状態によって変化しませんが、checked プロパティは変化します。


したがって、次のようなものを使用すると、すべてが機能します。

$("input[name=<name>][value=<value>]").prop(
        "checked", true);

この短いデモも参照してください。

于 2013-06-20T07:45:51.677 に答える