A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sunrise2 高级黑马   /  2014-8-11 09:22  /  922 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

不用mvc自带的验证机制,用jquery自写的一个验证机制,例代码以一个登陆界面为例   

登录页面
  1. @{
  2.     ViewBag.Title = "Login";
  3.     Layout = "~/Views/Login/_Layout.cshtml";
  4. }
  5. @model LoginModel
  6. @section BodyScript{
  7.     <script src="http://image.baiboom.com/js/jquery.validate.js" type="text/javascript"></script>
  8. }
  9. @section HeadStyle{
  10. }
  11. <div class="login_main">
  12.     <div class="row-fluid">
  13.         <div class="span12">
  14.             <form action="@Request.Url.ToString()" id="loginForm" method="post">
  15.             <div>
  16.                 @if (ViewData["SuccessMsg"] == null)
  17.                 {
  18.                     @Html.ValidationSummary(false, null, new { @class = "alert alert-error" })
  19.                 }
  20.                 else
  21.                 {
  22.                     <div class="alert alert-info">
  23.                         <h4 class="alert-heading">@ViewData["SuccessMsg"]</h4>
  24.                     </div>
  25.                      
  26.                 }
  27.                 @Html.AntiForgeryToken()
  28.             </div>
  29.             <div>
  30.                 <input class="span12" id="loginName" name="loginName" placeholder="邮箱/手机号码/百步ID"
  31.             type="text" value="@Model.loginName" />
  32.                 <div class="help-block">
  33.                     <span data-valmsg-for="loginName"></span>
  34.                 </div>
  35.             </div>
  36.             <div>
  37.                 <input class="span12" id="password" name="password" placeholder="密码" type="password" />
  38.                 <div class="help-block">
  39.                     <span class="field-validation-valid" data-valmsg-for="password"></span>
  40.                 </div>
  41.             </div>
  42.             <div>
  43.                 <label class="checkbox inline" id="labRememberMe">
  44.                     <input onclick="this.value=this.checked" name="rememberMe" type="checkbox" />一周内自动登录
  45.                 </label>
  46.             </div>
  47.             <div>
  48.                 <input type="submit" value="立即登录" class="btn btn-success btn-tremendous" />
  49.                 <label class="checkbox inline">
  50.                     <a href="/account/ForgetPwd">忘记密码?</a>
  51.                 </label>
  52.             </div>
  53.             </form>
  54.         </div>
  55.     </div>
  56.     <span>用其他帐户登录:<a class="btn btn-mini">QQ</a> <a class="btn btn-mini">新浪微博</a></span>
  57. </div>
  58. @section Script{
  59.     <script type="text/javascript">
  60.         $(function () {
  61.             jQuery.validator.addMethod("regex", function (value, element, param) {
  62.                 var tel = new RegExp(param);
  63.                 return (tel.test(value));
  64.             }, $.validator.format("验证Regex{0}!"));
  65. //            jQuery.validator.addMethod("customLoginName", function (value, element, param) {
  66. //                var re = new RegExp("(^1[3|4|5|8]\d{9}$)|(^[1-9][0-9]{6,9}$)");
  67. //                return re.test(value);
  68. //            }, $.validator.format("自定义验证{0}!"));

  69.             $("#loginName").tooltip({ title: "[用户名]必须为(邮箱、手机号码或百步ID)", delay: { show: 0, hide: 200} });
  70.             $("#password").tooltip({ title: "[密码]只能输入6~22数字或字母或特殊字符(~!@@#$%^&*.)", delay: { show: 0, hide: 200} });
  71.             $("#labRememberMe").tooltip({ title: "记住密码7天" });
  72.             $("#loginForm").validate({
  73.                 onkeyup: false,
  74.                 rules: {
  75.                     loginName: {
  76.                         required: true,
  77.                         regex: "(^1[3|4|5|8]{1}[0-9]{9}$)|(^[1-9][0-9]{6,9}$)|(([.a-zA-Z0-9_-]){2,10}@@([a-zA-Z0-9_-]){2,10}(.([a-zA-Z0-9]){2,}){1,4})"
  78.                     },
  79.                     password: {
  80.                         required: true,
  81.                         regex: "^[0-9a-zA-Z~!@@#$%^&*.]{6,22}[        DISCUZ_CODE_0        ]quot;
  82.                     }
  83.                 },
  84.                 messages: {
  85.                     loginName: {
  86.                         required: "请输入用户名",
  87.                         regex: "[用户账号]格式不正确"
  88.                     },
  89.                     password: {
  90.                         required: "请输入密码",
  91.                         regex: "[密码]只能输入6~22数字或字母或特殊字符(~!@@#$%^&*.)"
  92.                     }
  93.                 },
  94.                 errorClass: "validation-error",
  95.                 errorElement: "span",
  96.                 errorPlacement: function (error, element) {
  97.                     var p = $(element).parent().find('[data-valmsg-for="' + $(element).attr("name") + '"]:eq(0)');
  98.                     error.appendTo(p);
  99.                 },
  100.                 validClass: "validation-success",
  101.                 successClass: "validation-success",
  102.                 success: function (success, element) {
  103.                     var a = $(element);
  104.                     var name = a.attr("name");
  105.                     var p = a.parent().find('[data-valmsg-for="' + name + '"]:eq(0)');
  106.                     success.html("验证通过");
  107.                     success.addClass("validation-error validation-success");
  108.                     success.appendTo(p);
  109.                 }
  110.             });
  111.         });
  112.     </script>
  113. }
复制代码
LoginModel
  1. public class LoginModel
  2.     {
  3.         public LoginModel()
  4.         {
  5.         }

  6.         [Required(ErrorMessage = "[用户账号]必填")]
  7.         [RegularExpression(@"(^1[3|4|5|8]{1}[0-9]{9}$)|(^[1-9][0-9]{6,9}$)|(([.a-zA-Z0-9_-]){2,10}@([a-zA-Z0-9_-]){2,10}(.([a-zA-Z0-9]){2,}){1,4})", ErrorMessage = "[用户账号]格式不正确")]
  8.         public string loginName { get; set; }
  9.         [Required(ErrorMessage = "[用户密码]必填")]
  10.         [DataType(DataType.Password)]
  11.         [Display(Name = "用户密码:", Description = "[用户密码]只能输入6~22数字或字母或特殊字符(~!@#$%^&*.)")]
  12.         [RegularExpression("^[0-9a-zA-Z~!@#$%^&*.]{6,22}[        DISCUZ_CODE_1        ]quot;, ErrorMessage = "[用户密码]格式不正确")]
  13.         public string password { get; set; }
  14.         [Display(Name = "记住我", Description = "记住用户7天")]
  15.         public bool rememberMe { get; set; }
  16.         public string returnURL { get; set; }
  17.     }
复制代码



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马