使用jQuery和ASP.NET MVC进行多参数AJAX表单验证的正确方法是什么?
-
06-07-2019 - |
题
我有一个网站的注册表,需要检查某个公司ID是否已存在电子邮件地址。当用户选中或点击电子邮件字段(模糊事件)时,我希望jQuery关闭并执行AJAX请求,以便我可以警告用户他们需要选择另一个地址。
在我的控制器中,我有一个这样的方法:
public JsonResult IsEmailValid(int companyId, string customerNumber)
{
return Json(...);
}
为了使这项工作,我需要更新我的路由,直接指向 / Home / IsEmailValid
和两个参数 {companyId}
和 {customerNumber } 代码>。这似乎是我“黑客攻击”在路由系统中,我猜也许有更清洁的选择。
是否有“适当”的或推荐的方法来完成这项任务?
编辑:路由的意思是在URL中传递额外参数({customerNumber})(/ Home / IsEmailValid / {companyId} / {customerNumber})将无法使用默认路由映射。解决方案
您可以使用 jQuery Validation Plugin 来执行此操作。
你必须实现自己的方法,但是这样:
$.validator.addMethod("checkCompanyEmail", function(value, element) {
var email = value;
var companyID = //get the companyID
var result;
//post the data to server side and process the result and return it
return result;
}, "That company email is already taken.");
然后注册您的验证方法:
$("#the-form").validate({
rules: { email: { required: true, "checkCompanyEmail" : true } }
});
PS。我不明白为什么你需要“黑客攻击”为此做路由。
其他提示
远程方法下的验证文档中的
remote: {
url: "check-email.php",
type: "post",
data: {
username: function() {
return $("#username").val();
}
}
}
不隶属于 StackOverflow