不引人注目的javascript MVC3验证在IE9中不起作用,适用于IE10,safari

时间:2014-08-10 06:44:04

标签: javascript jquery asp.net-mvc-3

我的登录页面中有一个文本框和密码控件,下面是我的视图,

@Html.TextBoxFor(m => m.Login)
@Html.PasswordFor(m => m.Password)

我已经编写了jquery来验证上面的两个字段,

$('#txtLogin').blur(function () {
  if ($('#txtLogin').val() == '') {
    $('#LoginError').html("Please enter email address.");                            
    return false;
  } else {
    return true;        
  }
});

$('#txtPassword').blur(function () {
  if ($('#txtPassword').val() == '') {
    $('#LoginError').html("Please enter password.");                            
    return false;
   } else {
     return true;
   }
});

我想知道为什么这不仅仅适用于IE9?它在IE10和safari 5.1中完美运行

1 个答案:

答案 0 :(得分:1)

在MVC第一件事你需要确保在web.config

下面
<add key="UnobtrusiveJavasScriptEnable" value="true"/>

然后将jquery unobstrusive库添加到您的模型中,尤其是在MVC中尝试将jquery放在单独的文件中并将文件引用到视图中。

仅添加验证jquery库是不够的,在mvc中添加unobstrusive验证库也是不够的。

如果它仍然无效,那么尝试从html控件本身调用jquery onblur函数,如下所示。我想这与浏览器问题有关。

@Html.TextBoxFor(m => m.Login,new {"onblur","txtLogin_onbluur"})