У меня есть форма с полями ввода и кнопкой отправки.Наблюдается событие размытия каждого входа (с использованием прототипа), и запускается новый Ajax.Request для асинхронной проверки на стороне сервера.Текст ответа Ajax изменяет дерево DOM, обновляя тексты ошибок и стили ошибок.Все работает нормально, за исключением того, что когда я оставил какой-то элемент ввода, нажмите кнопку отправки, и DOM тем временем изменяется из-за ответа AJAX.не срабатывает, если DOM модифицируется посредством вызова AJAX.
Это код:
document.observe("dom:loaded", function() {
$$('#customerForm input[type=text],#customerForm select').each(function(node){
node.observe("blur",function(){
var formData=$('customerForm').serialize(true);
var fieldName=this.name;
var fieldId=this.id;
var errDivId=this.id+'_err';
var errDiv=$(errDivId);
var parent=$(errDiv.parentNode);
formData['fieldName']=fieldName;
new Ajax.Request(
validateUrl,
{
method: 'post',
parameters: formData,
onComplete:function(response){
var responseText=response.responseText;
responseText=responseText.strip();
errDiv.innerHTML=responseText;
if(responseText==""){
errDiv.removeClassName('errors');
parent.removeClassName('errors');
}
else{
errDiv.addClassName('errors');
parent.addClassName('errors');
}
}
});
});
});
});
Я что-то не так делаю?Или, если это ожидаемое поведение, есть ли обходной путь?Ожидаемый результат - отправка формы, независимо от того, был ли изменен DOM или нет после нажатия кнопки.