Значение переключателя jquery не работает, если их несколько

Я использую JQuery для моей формы. В моей форме много вопросов типа "радион".

<div>
        <label>1) Competently cut paper with scissors?</label>
            <br />
            <input type="radio" name="CAT_Custom_165607" id="CAT_Custom_165607_0" value="Yes" />
            Yes
            <input type="radio" name="CAT_Custom_165607" id="CAT_Custom_165607_1" value="No" />
            No
    </div>
    <div>
        <label>2) Hold a pencil in a mature pencil grip? </label>
            <br />
            <input type="radio" name="CAT_Custom_165609" id="CAT_Custom_165609_0" value="Yes" />
            Yes
            <input type="radio" name="CAT_Custom_165609" id="CAT_Custom_165609_1" value="No" />
            No
    </div>
    <div>
        <label>3) Write his/her first name - recognisable? </label>
            <br />
            <input type="radio" name="CAT_Custom_165610" id="CAT_Custom_165610_0" value="Yes" />
            Yes
            <input type="radio" name="CAT_Custom_165610" id="CAT_Custom_165610_1" value="No" />
            No
    </div>

И у меня есть моя функция jquery здесь:

function checkWholeForm(){
      var q1 = $('input[@name="CAT_Custom_165607"]:checked').val();
      var q2 = $('input[@name="CAT_Custom_165609"]:checked').val();
      var q3 = $('input[@name="CAT_Custom_165610"]:checked').val();
      alert(q2);
      return false;
       }

Когда я выбрал нет, да, да на три вопроса. Он всегда предупреждает "Нет", что является значением q1. Но я попытался предупредить значение q2. Тот же результат, когда я предупредил q3. Здесь что-нибудь конфликтует? Приветствия.

3 ответа

Вы используете неправильный синтаксис для селектора атрибута. Правильный синтаксис

'input[name="CAT_Custom_165607"]:checked'

Обратите внимание, нет @

В последних версиях jQuery вы также можете сделать следующее, чтобы найти выбранный вход и вернуть значение.

$('input[name=CAT_Custom_165610]').val()

Кроме того, не проверяйте в Javascript, если это не только для эстетики. Это можно обойти. Всегда проверяйте в своем бэкэнд-коде, что бы это ни было.

Эй, пожалуйста, попробуйте этот код.

$('input:radio').change(function () {
alert($(this).val());
});

Посмотреть демо

Я надеюсь, что это будет работать для вас.

Другие вопросы по тегам