javascript jquery preveri polje pred serialize()

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.