0

我有一个网站的注册表单,需要检查给定公司 ID 的电子邮件地址是否已经存在。当用户从电子邮件字段(模糊事件)中选择或单击时,我希望 jQuery 启动并执行 AJAX 请求,以便我可以警告用户他们需要选择另一个地址。

在我的控制器中,我有一个这样的方法:

public JsonResult IsEmailValid(int companyId, string customerNumber)
{            
  return Json(...);
}

为了完成这项工作,我需要更新我的路线以直接指向/Home/IsEmailValid和两个参数{companyId}{customerNumber}。这似乎我在路由系统中“黑客”,我猜也许有一个更清洁的选择。

是否有“正确”或推荐的方式来完成这项任务?

编辑:路由的意思是在 URL (/Home/IsEmailValid/{companyId}/{customerNumber}) 中传入额外参数 ({customerNumber}) 不适用于默认路由映射。

4

2 回答 2

2

你可以使用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。我不明白为什么你需要为此“破解”路由。

于 2009-10-23T18:31:25.400 回答
0

来自远程方法下的验证文档

    remote: {
      url: "check-email.php",
      type: "post",
      data: {
        username: function() {
         return $("#username").val();
        }
      }
    }
于 2010-12-06T18:23:22.990 回答