1
\$\begingroup\$

Is this a good form validation script?

$(document).ready(function() {

    $("form").submit(function() {

        var shouldSubmit = true;

        $(this).children(":input:not(:button, [type=\"submit\"], [type=\"reset\"])").each(function() {

            if ($(this).val() == "")
            {
                shouldSubmit = false;
                return shouldSubmit;
            }

        });

        if ($("input:checkbox").length > 0)
        {
            if ($("input:checkbox:checked").length == 0)
                shouldSubmit = false;
        }

        if ($("input:radio").length > 0)
        {
            if ($("input:radio:checked").length == 0)
                shouldSubmit = false;
        }

        if (shouldSubmit == false)
            alert("All form fields must be filled out.");

        return shouldSubmit;

    });

});
\$\endgroup\$
  • \$\begingroup\$ Have a look at this method: api.jquery.com/is You can save some work by doing something like if($("input:radio").is("checked)). Also you can just return false right away instead of setting a boolean then returning false. \$\endgroup\$ – Jonny Sooter Jul 16 '13 at 16:39
1
\$\begingroup\$

The if statements could be cleaner:

    if ($("input:checkbox").length > 0 && $("input:checkbox:checked").length == 0)
    {
        shouldSubmit = false;
    }

    if ($("input:radio").length > 0 && $("input:radio:checked").length == 0)
    {
        shouldSubmit = false;
    }

    if (!shouldSubmit)
    {
        alert("All form fields must be filled out.");
    }
\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.