jQuery Validation 1.9在IE9中不起作用

时间:2012-02-22 18:01:42

标签: asp.net-mvc jquery-plugins jquery-validate

是否有人有轻微的问题。我尝试结合使用jQuery 1.5.2,1.6.1,1.7.1,在Firefox和Chrome中一切正常,但IE9没有。

她是jQuery代码。这是一个简单的登录表单,如果用户名和密码的文本框为空,则应触发所需的验证

在firefox和chrome中,如果我将用户名和密码字段留空并按下按钮登录验证触发和标签此字段是必需的,显示在两个文本框的右侧。在IE中它只是绕过它并转到控制器。

在IE中,我将浏览器模式更改为IE8,IE7,它运行正常。只是IE9没有。

<form id="frmLogin" method="post" action="">
@Html.LabelFor(m => m.Email)          
@Html.TextBoxFor(m => m.Email, new { id = "Email" })
@Html.LabelFor(m => m.Password)
@Html.PasswordFor(m => m.Password, new { id = "Password" })
@Html.LabelFor(m => m.RememberMe)
@Html.CheckBoxFor(m => m.RememberMe)
@Html.AntiForgeryToken()
<button type="submit">Continue</button>              
</form>

<script type="text/javascript">
$(document).ready(function () {
    var email = $('#Email');
    var password = $('#Password');

    password.val('');

    if (email.val() == '')
        email.focus();
    else
        password.focus();
});

$().ready(function () {
    $.validator.addMethod('alphaNumeric', function (value) {
        return /^([a-zA-ZčČšŠžŽćĆđĐ0-9]+)?$/.test(value);
    }, "@ValidationMessages.AlphaNumeric");

    $("#frmLogin").validate({
        rules: {
            Email: {
                required: true,
                email: true,
                minlength: 5,
                maxlength: 50
            },
            Password: {
                required: true,
                alphaNumeric: true,
                minlength: 6,
                maxlength: 20
            }
        }
    });
});

1 个答案:

答案 0 :(得分:0)

尝试设置

 var email = $('#Email');
 var password = $('#Password');

var email = $('#Email')。val();
var password = $('#Password')。val();

变量可能无法转换为jquery对象,而是寻找简单的值。