Jquery проверяет значение из переключателей, только если установлено, в противном случае установите заданное значение - PullRequest
0 голосов
/ 19 января 2012

Я пытаюсь отправить некоторые радио-кнопки из формы с помощью ajax, проблема в том, что я не могу получить значения кнопок. Все было бы намного проще, если бы я мог просто использовать

data: $('form#my_form').serialize(),

Проблема в том, что это вообще не отправляет никаких значений, если переключатели не отмечены, и мне нужно какое-то не проверенное значение для некоторых групп переключателей, чтобы проверить форму в php и ответить с сообщение об ошибке. Вот почему я пытался с:

if ($('input[name=radio_group]').prop('checked')==true) {
        var radio_value=$('input:radio[name=radio_group]').val();
        }
    else {var radio_value=0;}

, а затем просто отправив отдельные значения. Но вышеприведенная функция не работает: она возвращает значение как «0», если переключатели не отмечены, но продолжает возвращать «0», даже если они проверены, возвращает только правильное значение, если отмечена первая кнопка в противном случае это всегда "0".

Есть предложения? Кроме того, есть ли более простой способ достичь того, чего я хочу? Мне нужно только .serialize (), чтобы отправить нулевое или любое другое значение, если переключатели не отмечены. Спасибо

Ответы [ 5 ]

2 голосов
/ 19 января 2012

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

var radio_value = ($('input:radio[name=radio_group]:checked').val() || 0);
2 голосов
/ 19 января 2012

это должно работать для вас ...

var radio_value = $('input:radio[name=radio_group]:checked').val();
1 голос
/ 19 января 2012

if ($ ('input: [name = radio_group]'). Prop ('checked') == true)

{

 var radio_value = $('input:radio[name=radio_group]:checked').val();

}

else

{

var radio_value=0;

}

1 голос
/ 19 января 2012

Можете ли вы попробовать .is (': флажок'), что-то вроде ниже должно сделать трюк,

if ($('input[name=radio_group]').is(':checked')) 
1 голос
/ 19 января 2012

Почему бы не выполнить проверку в javascript вместо того, чтобы прыгать и из сценария php.Я большой поклонник плагина jQuery Validation.

http://bassistance.de/jquery-plugins/jquery-plugin-validation/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...