0

我有一个表格供用户提交他们对电影的评论。当错过某个字段时,将显示错误警报,要求用户填写必填字段,但是当您多次点击提交按钮时,必填字段警报错误会显示为多次按下按钮导致长时间重复错误列表。我该如何防止这种情况发生?我尝试禁用提交按钮,该按钮有效并显示错误一次,但随后无法再次按下按钮。任何帮助将不胜感激。

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

    var error = false;

    // No value for movie_title
    if ($('#movie_title').val() == "") {
        $('.error').append("<li>Please enter a title </li>");
        error = true;
    }

    // No Value for actor
    if ($('#leading_name').val() == "") {
        $('.error').append("<li>Please enter the leading actors name </li>");
        error = true;
    }

    // No value for rating
    if ($('#rating').val() == null) {
        $('.error').append("<li> Please enter a rating</li>");
        error = true;
    }

    //No value for review
    if ($('#review').val() == "") {
        $('.error').append("<li>Please enter a review</li>");
        error = true;
    }

    if (error) { // If error found dont submit.
        e.preventDefault();
    }
}); // End of .submit function: review_a_film.
4

3 回答 3

1

您需要在验证之前停止提交,然后在通过时提交,例如:

$('#review_a_film').submit(function (e) {
    Event.stop(e);
    var form = Event.element(e);

    ...

    if (all is dandy) { form.submit() };
});
于 2013-10-18T18:01:03.997 回答
1

为什么不在.error提交函数开始时清除列表?

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

    var error = false;

    $('.error').empty();

    //...

}
于 2013-10-18T18:12:13.247 回答
0

如果有任何错误,您已禁用该按钮并启用该按钮。

$('#review_a_film').submit(function (e) {
$(this).attr('disabled',true);

var error = false;

// No value for movie_title
if ($('#movie_title').val() == "") {
    $('.error').append("<li>Please enter a title </li>");
    error = true;
}

// No Value for actor
if ($('#leading_name').val() == "") {
    $('.error').append("<li>Please enter the leading actors name </li>");
    error = true;
}

// No value for rating
if ($('#rating').val() == null) {
    $('.error').append("<li> Please enter a rating</li>");
    error = true;
}

//No value for review
if ($('#review').val() == "") {
    $('.error').append("<li>Please enter a review</li>");
    error = true;
}

if (error) { // If error found dont submit.
    e.preventDefault();
$(this).attr('disabled',false);
}
}); // End of .submit function: review_a_film.
于 2013-10-18T18:06:22.567 回答