防止自动验证

时间:2013-09-19 16:23:11

标签: jquery

我是Jquery的新手,我似乎遇到了一个恼人的问题。

如果某人点击提交,我该如何进行验证?

我是否必须说 - 如果提交== true运行功能?

  <script>

  $('#add_film').submit(function (e) {

var error = false;

// No value for movie_title
if ($('#movie_title').val() == "") {
    alert("No Film");
    error = true;
}

// No Value for actor
if ($('#leading_name').val() == "") {
    alert("No actor");
    error = true;
}

// No value for rating
if ($('#rating').val() == null) {
    alert("No Rating");
    error = true;
}

//No value for review
if ($('#review').val() == "") {
    alert("No review");
    error = true;
}

// Focus on first form field.
$("input:text:visible:first").focus();

if (error) {
    e.preventDefault();
}

});

</script>

4 个答案:

答案 0 :(得分:2)

从.ready()中删除它,将其添加到onclick,在提交按钮上。你可能想在.ready()上保留一些...就像专注于第一个元素部分一样。

答案 1 :(得分:1)

将代码移动到单击按钮事件,如下所示 -

$(document).ready(function(){

$("#submit").on('click',function(){
            // No value for movie_title
        if ($('#movie_title').val() == "" ) {
            alert ("No Film");
        }

        // No Value for actor
        if ($('#leading_name').val() == "") {
            alert ("No actor");
        }

        // No value for rating
        if ($('#rating').val() == null) {
            alert ("No Rating");
        }

        //No value for review
        if ($('#review').val() == "") {
            alert ("No review");
        }
});
    // Focus on first form field.
        $("input:text:visible:first").focus();

});

答案 2 :(得分:1)

您应该在表单submit事件:

上验证您的表单
$('#add_film').submit(function (e) {

    var error = false;

    // No value for movie_title
    if ($('#movie_title').val() == "") {
        alert("No Film");
        error = true;
    }

    // No Value for actor
    if ($('#leading_name').val() == "") {
        alert("No actor");
        error = true;
    }

    // No value for rating
    if ($('#rating').val() == null) {
        alert("No Rating");
        error = true;
    }

    //No value for review
    if ($('#review').val() == "") {
        alert("No review");
        error = true;
    }

    // Focus on first form field.
    $("input:text:visible:first").focus();

    if (error) {
        e.preventDefault();
    }

});

http://jsfiddle.net/4fnEa/

顺便说一句,不要试图将验证绑定到按钮上的单击事件,这是不正确的。表单元素具有提交事件用于此目的。另外,请确保在出现错误时阻止表单的默认行为。

答案 3 :(得分:0)

警告错误,如果有标记则标记 - 如果有标记 - 阻止提交表单:

$('#add_film').submit(function(e) {

        var err=0;

        // No value for movie_title
        if ($('#movie_title').val() == "" ) {
            alert ("No Film");
            err = 1;
        }
        // No Value for actor
        if ($('#leading_name').val() == "") {
            alert ("No actor");
            err = 1;
        }
        // No value for rating
        if ($('#rating').val() == null) {
            alert ("No Rating");
            err = 1;
        }
        //No value for review
        if ($('#review').val() == "") {
            alert ("No review");
            err = 1;
        }
    // Focus on first form field.
        $("input:text:visible:first").focus();

        if(err == 1){
            e.preventDefault();
        }
});