Поле выбора, заполненное динамически AJAX, не публикуется при отправке формы - PullRequest
0 голосов
/ 20 июля 2011

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

Пользователь выбирает страну из одного поля выбора, и выполняется запрос ajax, а параметры (содержащие названия штатов и территорий) возвращаются в поле выбора ниже. Хотя параметры возвращаются в поле выбора формы, выбранная пользователем опция НЕ отправляется при отправке формы.

Вот код, который я приготовил:

<script type="text/javascript">
    jQuery(document).ready(function($){
      $("select#state").attr("disabled","disabled");
      $("select#country").change(function(){
        $("select#state").attr("disabled","disabled");
        $("select#state").html("<option>Loading States...</option>");
        var id = $("select#country option:selected").attr('value');
          $.post("http://example.com/terms.php", {id:id}, function(data){
            $("select#state").removeAttr("disabled");
            $("select#state").html(data);
          });
        });
    });
</script>

Вы можете увидеть живой пример здесь (см. Раздел «Страна / штат»):

http://shredtopia.com/add/

Есть идеи, что нужно, чтобы это заработало?

Ответы [ 2 ]

0 голосов
/ 20 июля 2011

Попробуйте .live (eventType, обработчик)

Описание : Присоединить обработчик к событию для всех элементов, которые соответствуют текущему селектору, сейчас и в будущем.

http://api.jquery.com/live/

Добавьте к своему коду и попробуйте ~

$('select#state').live('change', function() {
   var id = $("select#state option:selected").attr('value');
   alert(id);
});

Или попробуйте это:

добавить скрытую форму:

<input type="hidden" id="hiddenValue">

измените выбранное состояние # следующим образом:

<select onchange='innerValue(this.options[this.options.selectedIndex].value)'></select>

и создайте функцию JavaScript

function innerValue(value){
        $("#hiddenValue").val(value)
     }

затем нажмите кнопку отправки, $("#hiddenValue").val() если вам нужно

$("#submitbutton").click(function(){
            alert($("#hiddenValue").val())
        })

но, думаю, это не лучшее решение ...

0 голосов
/ 20 июля 2011

Насколько я вижу, пользовательский ввод отправляется

input_32    79
input_29    alberta

Быть 79-й страной Канада и Альбертой государством.

<select tabindex="11" class="medium gfield_select" id="input_1_32" name="input_32"></select>
<select tabindex="12" class="medium gfield_select" id="input_1_29" name="input_29" disabled=""></select>

Может быть, я неправильно понял вопрос?

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