#jquery #validation
#jquery #проверка
Вопрос:
У меня есть функция jQuery, которую я хотел бы выполнить, только если проверка формы верна
, у меня есть проверка, и другие jQuery работают нормально.
проблема в том, что теперь и проверка, и другая функция выполняются одновременно.
Я хотел бы запустить другую функцию, только если проверка формы верна. вот мой скрипт
<script>
$(document).ready(function () {
$.validator.addClassRules({
fileName: {
required: true
}
});
$("#myform").validate();
if ($("#myform").valid()) {
$(function () {
$('#myform').submit(function () {
var cboxes = ($('input:checkbox:checked').filter(":checked").length);
var nboxes = ($(":checkbox:not(:checked)").length);
if ((cboxes > 0) amp;amp; (nboxes > 0)) {
confirm('You have Checked only few locations among the List. n Are you sure, you do not want to Prescribe from the other locations? ');
} else if (cboxes == 0) {
alert('Please select atleast One Address n Where you would prefer to prescribe from.');
return false;
}
else {
return true;
}
});
});
}
});
</script>
пожалуйста, посоветуйте, как я могу это сделать?
Комментарии:
1. Каков ваш код на данный момент? Разместите соответствующие части, и мы посмотрим.
Ответ №1:
Если вы используете плагин jQuery validate, то метод valid() возвращает логическое значение, указывающее, прошла ли форма успешную проверку, поэтому вы могли бы просто сделать:
if ($("#myform").valid()) {
CallSomeOtherFunction();
}
Комментарии:
1. Я мог бы выбрать ваши предложения, поэтому я вставил свой скрипт, надеюсь, вы сможете мне помочь лучше
Ответ №2:
Если вы используете стандартный плагин, такой код должен поддерживаться:
$(document).ready(function() {
$("#myForm").validate({
submitHandler: function(form) {
SomeFuncHere();
}
});
})
Код в submitHandler
должен быть вызван после успешной проверки.
Редактировать: на основе вашего кода попробуйте это вместо:
$("#myform").validate({
submitHandler: function(form) {
var cboxes = ($('input:checkbox:checked').filter(":checked").length);
var nboxes = ($(":checkbox:not(:checked)").length);
var flag = false;
if ((cboxes > 0) amp;amp; (nboxes > 0)) {
flag = confirm('You have Checked only few locations among the List. n Are you sure, you do not want to Prescribe from the other locations? ');
} else if (cboxes == 0) {
alert('Please select atleast One Address n Where you would prefer to prescribe from.');
}
else {
flag = true;
}
return flag;
}
});
Комментарии:
1. Я мог бы выбрать ваши предложения, поэтому я вставил свой скрипт, надеюсь, вы сможете мне помочь лучше
Ответ №3:
Вы должны использовать .validate().form()
if (!$("#myform").validate().form()) {
return false; //doesn't validate
}else
{
//form is validated do your work
}