Jquery и плагин Validate, тестирование на отсутствие ошибок
Я, очевидно, сделал что-то глупое или не смог понять какой-то фундаментальный процесс. Очень рано играли с этим.
Я пытаюсь проверить, проверяется ли форма при нажатии кнопки "Отправить" методом onClick.
<input class="submit" type="submit" value="Submit" onClick="submitForm()" />
Я использую Jquery и плагин Validate. У меня возникает проблема с проверкой каждого поля, но если я нажимаю на кнопку "Отправить" без данных, или не все поля были проверены, мне нужно будет проверить всю форму целиком, перед отправкой я должен получить возвращение false от validate().form()
, Это не происходит, так как else
заявление в submitForm()
никогда не выполняется.
В пустой форме после нажатия кнопки "Отправить" отображаются поля с сообщениями об ошибках, но мое тестирование возврата на "ложь", похоже, не работает.
$(document).ready(function() {
$('#formEnquiry').validate();
});
function submitForm() {
$('#msgid').append('<h1>Submitting Form (External Routine)</h1>');
if ($('#formEnquiry').validate().form()) {
$("#msgid").append("<h1>(Outside Ready) VALIDATED send to PHP</h1>");
}
else {
$('#msgid').append('<h1>(Outside Ready) NOT VALIDATED</h1>');
}
};
1 ответ
Пример Аякса
$(function() {
$("#ipenter").submit(function() {
var ip = $("#ip").val();
var date = $("#date").val();
var spammer = $("#spammer").val();
var country = $("#country").val();
var total = $("#total").val();
var dataString = $('#ipenter').serialize();
$.ajax({
url: "/test/process",
data: dataString,
type: "POST",
success: function(msg) {
$('#ipenter').append('<h3 class="gotin">Post succesfull!');
$('h3.gotin').delay(8000).fadeOut(500);
},
error: function(data){
$('#ipenter').prepend('<h3 class="didnt">Post sucked!');
$('h3.didnt').delay(8000).fadeOut(500);
}
});
return false;
});
});
Вам даже не нужна часть val()
Вы также можете добавить некоторую проверку в этот скрипт перед ajax
if (spammer == "") {
$("#spammer_error").show();
$("input#image").focus();
return false;
Это базовый пример ajax(я использую codeigniter, поэтому вам может понадобиться использовать действительный URL для URL)