не получать значения переключателя в jquery ajaxform

У меня есть форма, которая привязана к объекту JQuery Form (AjaxForm).

В форме у меня есть несколько переключателей:

<input type="radio" id="dialog_stranka_dodajuredi_tip_fizicna" name="dialog_stranka_dodajuredi_tip" value="2" /> Selection 2
<input type="radio" id="dialog_stranka_dodajuredi_tip_pravna" name="dialog_stranka_dodajuredi_tip" value="1" /> Selection 1

Теперь, когда форма отправляется через AJAX, параметр «dialog_stranka_dodajuredi_tip» пуст. Он вообще не имеет значения - независимо от того, какой переключатель выбран.

Я также попытался связать событие изменения следующим образом:

 $('input[name=dialog_stranka_dodajuredi_tip]').bind('change', function(){ 

   switch (parseInt($('input[name=dialog_stranka_dodajuredi_tip]:checked').val())) {
     case 2: 
       alert('number 2 selected');
       break;
     case 1:
       alert('number 1 selected');
       break;
 } 
 }); 

Но свойство val вообще не имеет значения. Окно предупреждения не появляется.

На данный момент я использовал firebug для отладки и установки часов, и вот результат (значения):

$('input[name=dialog_stranka_dodajuredi_tip]').val()  -> value: ""
$('input[name=dialog_stranka_dodajuredi_tip]:checked').attr('id') --> value: "dialog_stranka_dodajuredi_tip_pravna"
$('input[name=dialog_stranka_dodajuredi_tip]:checked').attr('name') --> value: "dialog_stranka_dodajuredi_tip"
$('input[name=dialog_stranka_dodajuredi_tip]:checked').val() --> value: ""

Как видите, val() просто не возвращает значение, хотя значение установлено в теге. Я не в курсе, есть идеи?


person saso    schedule 20.10.2009    source источник


Ответы (2)


Добавление кавычек ' вокруг самого имени решило эту проблему для меня, например:

switch (parseInt($("input[name='dialog_stranka_dodajuredi_tip']:checked").val())) { ... 
person Jon    schedule 05.05.2012

Это работает безупречно для меня.

скопируйте/вставьте следующий код

<html>
  <head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <script type="text/javascript">
      function a() {
        alert($('input[name=dialog_stranka_dodajuredi_tip]:checked').val());
        return false;
      }
    </script>
  </head>
  <body>
    <form action="">
      <input type="radio" id="dialog_stranka_dodajuredi_tip_fizicna" name="dialog_stranka_dodajuredi_tip" value="2"/> Selection 2
      <br>
      <input type="radio" id="dialog_stranka_dodajuredi_tip_pravna" name="dialog_stranka_dodajuredi_tip" value="1" /> Selection 1
    </form>
    <a href="#" onclick="javascript:a();">Check radio buttons</a>
</body>
</html>

на эту страницу W3School Tryit и убедитесь сами

person jitter    schedule 20.10.2009
comment
да, это работает в этом случае. я не знаю, это странно - как я уже сказал, я не в курсе. в случае моего кода значение val() пусто. я использую форму jquery и проверяю плагин. может быть проблема (какая-то несовместимость...)? - person saso; 20.10.2009