2010-06-09 2 views
2

1.) У меня есть диалоговое окно jQuery, которое открывается всякий раз, когда сосредоточено определенное текстовое поле. Содержимое для диалога загружаются из AJAX и уникальный идентификатор текстового поля, которое было сосредоточено передается в Ajax вызова (как это):jquery dialog очищает поля формы, и мне нужно вернуть значение из диалогового окна jQuery

$('[name=start_airport[]],[name=finish_airport[]]').click(function(){
  var id = $(this).attr('id');
  if($('#use_advanced_airport_selector').attr('checked')) {
    $('#advanced_airport_selector').dialog({
      open : function() {
        $(this).load('/flight-booker/advanced-airport-selector.php?callerID='+id);
      }
    });
    $('#advanced_airport_selector').dialog('open');
  }
});

(where advanced_airport_selector is an empty div)

, что часть работает отлично. Однако, когда я делаю свой вызов ajax в своем диалоговом окне, все мои значения формы сбрасываются! Независимо от того, что я делаю, когда открывается этот диалог, все значения формы сбрасываются (а не только значение текстового поля, которое было сфокусировано). Я просто не понимаю, что вызовет такое поведение!

Но это только проблема №1.

2.) Мне нужно вернуть значение из этого диалогового окна. Я передаю идентификатор в ajax-запросе, чтобы я мог использовать селектор jquery для обновления значения вызывающего абонента после выполнения определенных действий в диалоговом окне. Однако я не могу получить доступ к этому текстовому блоку из-за DOM_ERRORS, с которым я никогда не сталкивался. Это не имеет никакого смысла!

Есть много способов опубликовать текст, и это очень сложно объяснить, так что извините, если я не понимаю, что я прошу.

ответ

1

Ошибки DOM в проблеме №2 могут быть вызваны квадратными скобками в вашем селекторе. Квадратные скобки ([и]) являются специальными символами в JQuery, так что вы должны избавиться от них, как это:

$('[name=start_airport\\[\\]],[name=finish_airport\\[\\]]').click(function(){ 
... 
}); 

От http://api.jquery.com/category/selectors/:

Если вы хотите использовать какие-либо из метасимволов (такие как! "# $% & '() * +,./:; < =>? @ [] ^` {|} ~) как буквальная часть имени, вы должны избегать символа с двумя обратными косыми чертами: Например, если у вас есть элемент с id = "foo.bar", вы можете использовать селектор $ ("# foo \\. Bar").

Смежные вопросы