Я пытаюсь настроить удаленную проверку с помощью плагина jQuery validation 1.8.0 (и JQuery 1.5.2).
Работает нормально для «required» и «maxlength», но для удаленной проверкиработает ТОЛЬКО после 2-го щелчка (проверки) или, если были запущены какие-либо другие ошибки ранее.
Проверка выполняется правильно, и отображается сообщение об ошибке, но в первый раз проверка возвращает значение true (дажеесли отображается ошибка).Это проблема, поскольку форма будет отправлена с ошибкой.
Вот мой код (упрощенно):
<script type="text/javascript">
$(function() {
$( "#check" ).click(function(){
var valid = $("#myForm").validate(
{rules: {
groupName:{
required:true,
maxlength:40,
remote: {
url: 'ajaxCheck.php', // returns always a dummy string: "Simulate an error message" (JSON encoded)
type: "post",
data: {
groupName: function() {
return $("#groupName").val()
}
}
}
}
}
}
).form();
alert(valid); // Returns true at the first call, and then false
});
});
</script>
<form id="myForm" action="">
<label for="groupName">Group name</label>
<input type="text" maxlength="40" size="45" value="my test" id="groupName" name="groupName">
</form>
<input type="button" value="Check form" id="check" >
Файл ajaxCheck.php содержит:
require_once ('Zend/Json/Encoder.php');
echo Zend_Json_Encoder::encode("Simulate an error message");
Кажется, что JSON-ответ правильно закодирован (проверено с помощью Firebug).
Есть идеи, что я делаю неправильно?
Я пробовал также jQuery 1.6, но у меня были другие проблемы в IE8.