Мой пользовательский интерфейс состоит из поля со списком, в котором отображается тип формы.Затем форма отправляется с использованием ajax.Обратный вызов снова отображает всю форму и другую информацию.Проблема заключается в том, что первая отправка работает, но вторая отправка не учитывает изменения, внесенные в поле формы.
- Выберите форму 1 в списке
- Форма 1 отображается спустое поле
- Пользователь заполняет форму и отправляет
- Форма 1 снова отображается с информацией от пользователя и другой информацией
- Пользователь изменяет значение поля и отправляет НОстарые данные передаются.
Мой текущий jQuery (я использую плагин jQuery Form ):
$(document).ready(function() {
// do stuff when DOM is ready
var testCaseList = $('#testCaseId');
testCaseList.live('change', function() {
$.ajax({
url: 'populateSteps.htm',
type: 'GET',
data: 'testCaseId=' + $(this).val(),
success: function(data){
$('#formContainer').html(data);
var formId = $('#testCaseForm');
var validateButton = $('#validateButton');
validateButton.live('click', function() {
// prepare Options Object
var options = {
url: 'validateTestCase.htm',
success: function(data) {
$('#formContainer').html(data);
}
};
// pass options to ajaxForm
alert(formId.formSerialize());
formId.ajaxSubmit(options);
});
}
});
});
});
В основном после изменения значения в поле со списком, форма отображается и событие кнопки прикрепляется к кнопке формы.Клик только отправляет форму.
Я использовал метод live, чтобы прикрепить событие, потому что форма отображается после каждой отправки.Я знаю, что это не очень AJAX, но я должен был это сделать из-за того, что Spring плохо обрабатывает частичную форму.
Я мог бы сделать лучше, прикрепив событие к вновь созданной форме, используя bind, но я не знаюгде я должен поставить код.Форма отображается с использованием JSP, и я попытался поставить
HTML/JSP code ... <script type="text/javascript">
$(document).ready(function() {
// Attach the event to the form
} </script>
после кода JSP, но сценарий не выполняется.
EDIT Сценарий невыполнено из-за неправильного сценария: отсутствует);
<script type="text/javascript">
$(document).ready(function() {
// Attach the event to the form
});
</script>
Сейчас он работает, но мне все еще интересно, почему привязка live
использует старые данные из формы.