0

私は自分のjqueryに問題があり、うまく動作させることができません。

私は調査を行っていますが、すべての質問の最後のラジオ オプションはその他であるため、ユーザーは好きなようにカスタム テキストを入力できます。ラジオがチェックされ、テキストボックスがピアになるまで、またはチェックされるまで、テキストボックスを非表示にしたいと思います。

私はこれを試しました:

    $(document).ready(function () {
    $("#custom_form_custom_field_2_block").hide();

    $("input:radio[name=custom_form[custom_field_1]]").change(function () {
        if (this.value == "jeg har et helt 4. forslag") {
            $("#custom_form_custom_field_2_block").fadeIn();
        } else {
            $("#custom_form_custom_field_2_block").fadeOut();
        }

    });

    $("#custom_form_custom_field_2_block").focusout(function () {
        $("input:radio[name=Title]:checked").attr('value', $("#custom_form_custom_field_2_block").val());
    });
});

ここに mt fiddle へのリンクがあります: JSFiddle

あなたが助けてくれることを願っています、よろしくトーマス

4

1 に答える 1

2

この行が問題だと思います:

$("input:radio[name=custom_form[custom_field_1]]")

大括弧 ("[" および "]") は CSS セレクターの予約文字であり (そのようなセレクターを jQuery の $() 関数に渡します)、要素の名前の一部として大括弧を使用しています。代わりにこれを試してください:

$("input:radio[name=custom_form\\[custom_field_1\\]]")

のcssセレクターを生成します

input:radio[name=custom_form\[custom_field_1\]]

したがって、ブラケットをエスケープします。すべてのブラウザで動作するとは限りません。

編集: CSS セレクターでの文字のエスケープに関する追加情報は次のとおりです: http://mathiasbynens.be/notes/css-escapes

于 2013-10-25T08:43:15.850 に答える