【jquery】ラジオボタンを2回クリックでチェックを外す

Invalid argument supplied for foreach()でWarningエラーが出たので出ないようにした javascript

フォーム要素のチェックボックスは2回クリックでON・OFFになります。
ラジオボタンは、2回クリックしてもON・OFFになりません。

2回クリックでOFFにしたい!

jqueryで可能です。
ラジオボタンのチェック値を取得しておき、ラジオボタンがクリックされた時に値を判別してON・OFFを設定します。

$(function(){
    $(".mwform-radio-field input").each(function(event){
        var _checked = $(":checked",this);
        $(this).on("click",function(e){
            if($(this).val() == _checked) {
                $(this).prop('checked', false);
                _checked = false;
            } else {
                _checked = $(this).val();
            }
        });
    });
});

上記はMW WP Formのラジオボタンを2回クリックでON・OFFする例です。
MW WP Formのラジオボタン用ショートコードが展開されると、以下のようなhtmlになるので、mwform-radio-fieldクラス毎に値を取得してクリック時に判別しています。

<span class="mwform-radio-field horizontal-item">
    <label>
        <input type="radio" name="q1" value="質問1" class="answer-radio_label">
        <span class="mwform-radio-field-text">質問1</span>
    </label>
</span>

コメント

タイトルとURLをコピーしました