我正在努力实现我们在这里看到的内容:
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">
在我的情况下,每次我点击提交,它都会发布到Register操作 - 我似乎永远不会点击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>
所以问题是在提交时,我总是在验证器/Region/Save
之前发布到保存方法ValidateRegion
!我错过了global.asax.cs
中的路线吗?
我需要知道javascript代码何时发布/进入验证器方法?我会假设提交,但它似乎永远不会被召唤!?
当人们没有阅读您的问题并指出您的主要文档参考时,确实很烦人,有趣的是,我已经去过那里。
答案 0 :(得分:0)
任何类型的表单验证必须连接到onsubmit函数,如果此函数将返回false表单将不会被提交。
<form onSubmit="function(){return false;}">
永远不会被提交
将jquery validate连接到onsubmit是通过validate()函数完成的, NEEDS 在文档就绪时完成
还有一项所有输入 NEEDS 名称属性可以进行验证
可以在http://docs.jquery.com/Plugins/Validation/
找到更多文档和大量示例修改强>
这是你在jsFiddle中的代码: http://jsfiddle.net/fzf3q/1/
它起作用只有sugesstion确保在使用它之前包含验证功能:
alert($("#Form-AddRegion").validate)