asp.net MVC2中利用jquery.validate进行用户注册验证

时间:2022-12-08 14:22:45

首先在模板页面中引入jquery类库和jquery.validate类库

<script src="/Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script src="http://www.cnblogs.com/Scripts/jquery.validate.js" type="text/javascript"></script>
 <script src="http://www.cnblogs.com/Scripts/JQuery.Validate.Message_cn.js" type="text/javascript"></script>

其中JQuery.Validate.Message_cn是对jquery.validate类库中的英文出错信息用中文替换,代码如下:

//定义中文消息
var cnmsg = {
required: "必选字段",
remote: "请修正该字段",
email: "请输入正确格式的电子邮件",
url: "请输入合法的网址",
date: "请输入合法的日期",
dateISO: "请输入合法的日期 (ISO).",
number: "请输入合法的数字",
digits: "只能输入整数",
creditcard: "请输入合法的信用卡号",
equalTo: "请再次输入相同的值",
accept: "请输入拥有合法后缀名的字符串",
maxlength: jQuery.format("请输入一个长度最多是 {0} 的字符串"),
minlength: jQuery.format("请输入一个长度最少是 {0} 的字符串"),
rangelength: jQuery.format("请输入一个长度介于 {0} 和 {1} 之间的字符串"),
range: jQuery.format("请输入一个介于 {0} 和 {1} 之间的值"),
max: jQuery.format("请输入一个最大为 {0} 的值"),
min: jQuery.format("请输入一个最小为 {0} 的值")
};
jQuery.extend(jQuery.validator.messages, cnmsg);

一定要注意母板页中引用的先后顺序,因为下边的类库都是基于上边的,所以顺序不能颠倒。

然后在view中用jquery.validate进行验证,view代码如下:

register.aspx//用户注册页面

   <form action="/Account/LogOn" method="post" id="form1" runat="server">
      
        <%: Html.ValidationSummary(true, "帐户创建不成功。请更正错误并重试。")%>
        <div>
            <fieldset>
                <legend>帐户信息</legend>
               
                <div class="editor-label">
                    <%: Html.Label("用户名")%>
                </div>
                <div class="editor-field">
                    <%: Html.TextBoxFor(m => m.user_name)%>
                    <%: Html.ValidationMessageFor(m => m.user_name)%>
                </div>
               
                <div class="editor-label">
                    <%: Html.Label("邮箱")%>
                </div>
                <div class="editor-field">
                    <%: Html.TextBoxFor(m => m.Email)%>
                    <%: Html.ValidationMessageFor(m => m.Email)%>
                </div>
               
                <div class="editor-label">
                    <%: Html.Label("密码")%>
                </div>
                <div class="editor-field">
                    <%: Html.PasswordFor(m => m.pwd)%>
                    <%: Html.ValidationMessageFor(m => m.pwd)%>
                </div>
               
                <div class="editor-label">
                    <%: Html.Label("确认密码")%>
                </div>
                <div class="editor-field">
                    <%: Html.Password("pwdagain")%>
                    <%: Html.ValidationMessage("pwdagain")%>
                </div>
               
                <p>
                    <input type="submit" value="注册" />
                </p>
            </fieldset>
        </div>
    </form>
      <script type="text/javascript">
          function InitRules() {
              opts = {
                  rules:
                  {
                      user_name:
                        {
                            required: true,
                            remote: {
                                type: "post",
                                datatype: "json",
                                url: "/Users/IsUserExist",
                                data: {
                                        user_name: function () {
                                        return $("#user_name").val();
                                    }

                                }
                            }
                        }
                            ,
                      Email:
                        {
                            email: true
                        },
                      pwd:
                       {
                           required: true,
                           minlength: 6
                       },
                      pwdagain:
                       {
                           required: true,
                           minlength: 6,
                           equalTo: "#pwd"
                       }
                  },
                  messages:
                  {
                      user_name:
                     {
                         required: "请输入用户名",
                         remote: "该用户已存在!"
                     }
                  }
              }
         }
         jQuery(document).ready(function () {
             InitRules();
             if (opts != undefined || opts != null) {
                 jQuery("#<%=form1.ClientID %>").validate(opts);
             } else {
                 jQuery("#<%=form1.ClientID %>").validate();
             }
         });
               
       </script>
UsersController代码如下:

 public class UsersController : Controller
    {
        //
        // GET: /User/
        UserRepository userRepository = new UserRepository();
       
       
      
        public JsonResult IsUserExist(string user_name)
        {
            //JsonResult result = new JsonResult();
            if (userRepository.ValidateUser(user_name))//查询是否存在该用户
          
            {
                //result.Data = false;
                return Json(false);
              
            }
            else
            {
                //result.Data = true;
                return Json(true);
               
            }
            //return Json(result, JsonRequestBehavior.AllowGet);

        }

注意直接返回json(true)或json(false)即可。