代码之家  ›  专栏  ›  技术社区  ›  Jedidja

使用jquery和asp.net mvc进行多参数ajax表单验证的正确方法是什么?

  •  0
  • Jedidja  · 技术社区  · 16 年前

    我有一个网站的注册表格,需要检查一个电子邮件地址是否已经存在一个给定的公司ID。当用户标签或点击退出电子邮件字段(模糊事件)时,我希望jQuery离开并做一个Ajax请求,这样我就可以警告用户他们需要选择另一个地址。

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

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

    为了让这个工作,我需要更新我的路线,直接指向 /Home/IsEmailValid 两个参数 {companyId} {customerNumber} . 这似乎是我在“黑客”在路由系统,我猜也许有一个更干净的选择。

    有没有“正确的”或推荐的方法来完成这项任务?

    编辑:我所说的路由是指在url(/home/isemailvalid/{companyid}/{customernumber})中传递额外的参数({customernumber})不会使用默认路由映射。

    2 回复  |  直到 15 年前
        1
  •  2
  •   Çağdaş Tekin    16 年前

    你可以使用 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 } } 
    });
    

    另外,我不明白你为什么要“绕行”路由。

        2
  •  0
  •   timbrown Kishore Kumar    15 年前

    从下面的验证文档 remote method

        remote: {
          url: "check-email.php",
          type: "post",
          data: {
            username: function() {
             return $("#username").val();
            }
          }
        }