Asp.Net MVC - JQuery远程验证

时间:2010-09-16 17:20:36

标签: asp.net jquery asp.net-mvc json jquery-validate

我得到了以下JQuery验证脚本:

<script type="text/javascript">
$(document).ready(function() {
    $("#myForm").validate({
        rules: {
            "Content": {
                required: true,
                rangelength: [20, 1000],
                remote: {
                    url: "/RemoteValidation/IsValidContent",
                    timeout: 2000,
                    type: "post"
                }
            }
        },
        messages: {
            "Content": {
                required: "* ...A",
                rangelength: "* ...B",
                remote: "* ...C"
            }
        }
    });
});

以下控制器:

public class RemoteValidationController : Controller
    {
        [HttpPost]
        public virtual JsonResult IsValidContent(MyObject object)
        {    
            return new JsonResult
            {
                Data = true
            };
        }
}

它仅用于测试目的,它始终返回true。

我得到的问题如下。我看到错误消息(... C)出现1秒钟,然后消失...

我不知道如何解决......

为什么它出现......它永远不会出现......

更新

如果我在textarea中写得非常快,那么问题就出现了。如果我慢慢写,它就不会出现。我的猜测是在我输入之间,验证没有时间验证,默认情况下,它显示错误?

无论如何,我可以改变这种行为吗?

1 个答案:

答案 0 :(得分:3)

您可以在输入时禁用验证,但仅在提交表单之前:

$('#myForm').validate({
    onfocusout: false,
    onkeyup: false,
    ...
});