MVC自定义客户端验证

时间:2012-03-14 12:26:27

标签: asp.net-mvc-3

在我的mvc 3应用程序中,我想在用户尝试提交表单时执行一个函数。在该函数中,我将检查许多字段以确定用户是否在提交之前提供了必要的数据。

如何在用户尝试提交表单时连接要执行的脚本?

(在自定义验证功能中,我需要检查是否已选中各种复选框,如果是,则从下拉列表中选择其他值等。)

3 个答案:

答案 0 :(得分:5)

  

如何在用户尝试提交表单时连接要执行的脚本?

您可以订阅表单的.submit事件,并在调用标准客户端验证后调用您的自定义函数:

$(function() {
    $('form').submit(function() {
        if (!$(this).valid()) {
            // standard client validation failed => prevent submission
            return false;
        }

        // at this stage client validation has passed. Here you could call your
        // function and return true/false depending on the result of your
        // custom function
    });
});

另一种可能性是编写自定义验证属性并连接自定义适配器,如this answersimilar one所示。

答案 1 :(得分:2)

$('#formId').submit(function () {
    var standardIsValid = $(this).validate().form();
    var customIsValid = customValidations();
    if (!standardIsValid || !customIsValid) {
        return false;
    }
});

答案 2 :(得分:0)

在视图(RAZOR或ASPX)中,您将像在html中一样定义脚本,并且将进行客户端验证。

例如:

<script>
  //define your script here, ie. $.(#tagtovaildate).validate();
</script>

<html>
  //code
</html>