我有一个网站的注册表,需要检查某个公司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();
        }
      }
    }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top