【问题标题】:jQuery validation: using remote validatorsjQuery 验证:使用远程验证器
【发布时间】:2011-04-19 07:38:45
【问题描述】:

我正在尝试实现我们在此处看到的内容:

http://weblogs.asp.net/cibrax/archive/2008/08/01/combining-jquery-validation-with-asp-net-mvc.aspx

我遇到的问题是它不使用远程验证器。

<form action="<%=Url.Action("Register", "Home")%>" method="post" id="form-sign-up">

就我而言,每次我点击提交时,它都会发布到注册操作中——我似乎从未点击过 Json 验证器方法。事实上,我下载了示例并且远程帖子对我不起作用。远程部分是否适用于其他人的示例?

有谁知道如何让他们工作或有更好的例子?

基本上我所拥有的是一个模态弹出编辑表单。我想在发布到保存(或在本例中为Register)方法之前进行所有验证。

我只需要检查它是否是必需的,远程验证器将检查它是否重复。在我的示例中,我错过了验证器并最终使用了 save 方法。显然,如果该字段已填写且不重复,我只想保存。


编辑 0:

我正在使用 MVC 2

<form action="/Region/Save" method="post" id="Form-AddRegion">
    <div class="editor-label">
        <%: Html.Label("Region:") %>
        <%: Html.TextBoxFor(model => model.Region, new { @class = "edit required remote"}) %>
    </div>

    <p>
        <input type="submit" value="Save" />
        <input type="button" onClick="window.parent.CloseWindow();" value="Cancel" />
    </p>
</form>

public ActionResult ValidateRegion(string name)
{
    if (!something)
        return Json(true, JsonRequestBehavior.AllowGet);
    return Json(false, JsonRequestBehavior.AllowGet);
}

<script type="text/javascript">

    $(document).ready(function () {

        alert('jQuery is referenced properly');

        $("#Form-AddRegion").validate({
            rules:
            {
                //rules each for specified input-id
                Region:
                {
                    required: true,
                    remote: '<%=Url.Action("ValidateRegion","Region") %>'
                }
            },
            messages:
            {
                Region:
                {
                    required: "Please provide a Region",
                    remote: jQuery.format("{0} is already in use")
                }
            }
        });
    });
</script>

所以问题是在提交时,我总是在验证器ValidateRegion之前发布到保存方法/Region/Save!我错过了global.asax.cs 中的路线吗?

我需要知道 javascript 代码何时发布/进入验证器方法?我会假设提交,但它似乎永远不会被调用!?

当人们不阅读您的问题并将您指向主要文档参考时,这确实很烦人,有趣的是,我已经去过那里了。

【问题讨论】:

  • 你用的是什么版本的mvc?请提供少量代码

标签: c# jquery asp.net-mvc validation


【解决方案1】:

任何形式的表单验证都必须连接到 onsubmit 函数,如果此函数将返回 false 表单将不会被提交。

<form onSubmit="function(){return false;}"> 

永远不会提交

将 jquery validate 连接到 onsubmit 是通过 validate() 函数完成的,需要在文档准备好时完成

还有一件事,所有输入需要名称属性才能被验证

更多文档和大量示例可以在这里找到http://docs.jquery.com/Plugins/Validation/

编辑

这是您在 jsFiddle 中的代码: http://jsfiddle.net/fzf3q/1/

它在那里工作,唯一的建议是确保在使用它运行之前包含验证功能:

alert($("#Form-AddRegion").validate)

【讨论】:

    猜你喜欢
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多