0

我仍然对此感到困惑。现在开始学习 JQuery 大约一个星期,这就是我所拥有的:

var IsValidUserName = false;

$(document).ready(function () {
    $('#txtUserName').blur(function () {

  if ($('#txtUserName').val().match(isNumberLetter) && 
($('#txtUserName').val().length >= 8)) {

            $('#userNameError').removeClass("error").addClass("default");
            $('#txtUserName').removeClass("alert");
            $('#txtUserName + label').removeAttr("id", "lblUserName");
            IsValidUserName = true;
        }
        else {
            $('#userNameError').removeClass("default").addClass("error");
            $('#txtUserName').addClass("alert");
            $('#txtUserName + label').attr("id", "lblUserName");
        }
    });
});

可以说我有另一个类似上面的功能,可以说FirstName

如何在提交事件中调用它?当用户离开字段时,代码可以按我的需要工作。如果输入的数据无效,我不确定如何调用此代码并使用上面的变量来防止提交。

如果用户单击提交按钮,我需要调用上面的验证,如果IsValidUserName变量是,则停止提交false.

有些事情只需要一点推动。

谢谢我的朋友。

盖伊

4

1 回答 1

2

您始终可以将其提取到函数而不是匿名函数中,并将引用传递给要检查的对象。这将为您提供将其重用于其他元素的额外好处。

function validate(ele) {
    var valid;

    if (ele.val().match(isNumberLetter)) && (ele.val().length >= 8)) {
        valid = true;

        // update user here.
    } else {
        valid = false;

        // update user here.
    }

    return valid;
}

$(function(){
    $('#firstName').blur(function(){ validate($(this)); });
    $('#lastName').blur(function(){ validate($(this)); });

    $("yourFrom").submit(function(){
        var firstNameIsValid = validate($('#firstName'));
        var lastNameIsValid = validate($('#lastName'));

        if (!nameIsValid) && (!lastNameIsValid) {
            return false;
            // User has already been updated
        }
    });
});

此外,由于您已经大量使用 javascript 进行验证(希望这是方便而不是唯一的安全性),您还可以完全禁用提交按钮,直到表单满足适当的要求。

于 2013-06-23T05:23:51.920 回答