【发布时间】:2011-08-31 12:36:56
【问题描述】:
我刚刚整理了一个漂亮的表单,花了我几个小时,并带有一些漂亮的 jQuery focusout 验证。 focusout 属性附加到输入字段 onload。然后我通过触发焦点事件 onsubmit 重新使用我的验证功能,但我不知道如果我的任何验证功能失败,如何禁用表单提交。完整示例here (jsfiddle)
缩减示例:
addLoadEvent(AttachVal);
函数 AttachVal(){
$('input[name="FirstName"]').focusout(NameTest); $('input[name="LastName"]').focusout(NameTest); $('form[name="Register"]').submit(SubmitRegForm);}
函数 SubmitRegForm(){
$('input[name="FirstName"]').trigger('focusout'); $('input[name="LastName"]').trigger('focusout'); alert ("Submitting");返回 假的;
}
验证函数:
function NameTest(){
var result = true;
var EnteredValue = $(this).val();
var alphaExp = /^[a-zA-Z ]+$/;
if (!(EnteredValue.match(alphaExp)))
{
var result = "Invalid";
}
if (result !== true)
{
$(this).parent().next().children('span.ErrorDescript').text(result);
}
else
{
$(this).parent().next().children('span.ErrorDescript').text("");
}
}
我尝试在 SubmitRegForm 函数中附加一个变量,如下所示:
var FNStat = $('input[name="FirstName"]').trigger('focusout');
打算检查它们并在它们都返回true时提交,但这只是返回一个对象。是否可以从该函数中获取响应文本?...也许?或者是否有另一种方法可以强制停止当前在我的个人验证函数中运行的提交事件?
一如既往,非常感谢任何建议。
丹
【问题讨论】:
-
为什么布尔值变成了字符串?应该将其设置为 false 而不是“无效”。
-
你看过 jQuery Validate 吗?它会为您节省大量代码。 docs.jquery.com/Plugins/validation, bassistance.de/jquery-plugins/jquery-plugin-validation
标签: jquery validation forms submit halt