Прервать выполнение функции из другой функции
Есть динамически генерируемая форма с неизвестным количеством полей. Все поля должны быть заполнены.
jQuery(".field[value=""]") находит поля у которых изначально value был пустым, и после заполнения тоже возвращает их. Я решил пройтись по всем полям each'ем и при обнаружении пустого поля прервать отправку формы и пр. действия onclick.
$('button').click(function(){
jQuery.each(jQuery(".field"), function (k, item) {
if (jQuery.trim(jQuery(item).val()) == "") {
alert('Заполните все поля!');
}
});
// прочие действия...
});
Как мне прервать выполнение всех последующих действий при нахождении незаполненного поля? Или, может как-то это более рационально и правильно реализовать можно? |
Sufir,
Воть так это делаеся <form id="upload" class="container" method="post" enctype="multipart/form-data" action="profile.php?action=upload" onsubmit="return process_form(this)"> По субмиту - запускается функция проверки формы process_form(this) - при возврате функцией false - отправка формы запрещена |
Deff, эммм... Это хорошо конечно, но отправку предотвратить не проблема. А что находится внутри функции process_form?
function process_form(form){
jQuery.each(jQuery(form).find(".field"), function (k, item) {
if (jQuery.trim(jQuery(item).val()) == "") {
alert('Заполните все поля!');
// Вот тут нужно прервать дальнейшее выполнение и заставить process_form вернуть false
}
});
});
|
Мда... Это я тупанул, кончно:
$('button').click(function(){
var emptyInputs = 0;
jQuery.each(jQuery(".field"), function (k, item) {
if (jQuery.trim(jQuery(item).val()) == "") {
emptyInputs++;
}
});
if (emptyInputs) {
alert('Заполните все поля!');
} else {
// прочие действия...
}
});
А вообще есть ещё $.prop() и $.map() - с ними всё было бы гораздо удобнее и проще, стоило только копнуть поглубже... |
| Часовой пояс GMT +3, время: 06:54. |