javascript jquery preveri polje pred serialize()
3 naročniki
3 naročniki
ve kdo napako v naslednji kodi
$('form').find('input').each(function (elem) {
if ($(elem).val().length == 0) {
alert('Polje ni izpoljneno!\n');
$(elem).focus();
return false;
}
});
hvala
12 odgovorov
Zato ker vračaš false v tretjem nivoju, v drugem pa izvedeš ajax.
Naredi tako:
var $inputs = $('input'),
found_empty = false;
for (var idx = 0; idx < $inputs.length; idx++)
{
if ( ! $($inputs[idx]).val())
{
found_empty = true;
$($inputs[idx]).focus();
break;
}
}
if ( ! found_empty)
{
// izvedi ajax
}
edit: moj odgovor se je nanašal na vprašanje: "zakaj pa mi ne ustavi z opozorilom?"
Če so polja type=radio predlagam da jim nastaviš eno od opcij kot default, najbolj elegantna rešitev.