0

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

只有当一个人点击提交时,我如何才能使验证工作?

我会说 - 如果提交 == 真正的运行功能?

  <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

4 回答 4

2

将其从 .ready() 中删除,将其添加到 onclick,on submit 按钮。您可能希望将其中的一些保留在 .ready()... 上,例如关注第一个元素部分。

于 2013-09-19T16:24:34.913 回答
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();

});
于 2013-09-19T16:27:49.687 回答
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/

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

于 2013-09-19T16:28:16.133 回答
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();
        }
});
于 2013-09-19T16:31:18.140 回答