我仍然对此感到困惑。现在开始学习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
,则需要停止提交。
有些事情需要一点推动。
感谢我的朋友们。
盖
答案 0 :(得分: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进行验证(希望这是方便而不是唯一的安全性),您还可以完全禁用提交按钮,直到表单符合正确的要求。