2016-03-01 87 views
0

我有一个具有多个输入的表单,我想验证所需的。jQuery验证未捕获引用错误

container.all("input").each(function(){ 
if(this.hasAttribute("required")){ 
     if((this.val()==="") { 
      undentifiedFunction() 
     } 
    } 

(搞错了)undentifiedFunction()没有定义,它valides,因为我想要的输入。我该如何正确地做到这一点?

+1

确实让人困惑。你能多解释一下吗? –

+0

你可以创建一个小提琴来说明你的问题? – Blindsyde

回答

2

您可能需要退后一秒&请参阅表单验证的整体图片。在这里寻求一个简单的代码片段会给你带来问题,直到你明白你真正需要先做的是什么。

你会想,如果它无法验证每个输入字段&,那么你要强调的是输入与红色边框&可选的文本消息打开输入解释什么是错的下方。这个想法是尽可能地对不是程序员的最终用户友好。

用户需要知道信用卡号码字段不能包含字母。或者邮政编码字段不能为3个字符。或者电话号码字段不能是5位数字。他们可能会尝试添加这些字符,或者意外地在长表单上做错误的事情(请考虑:航空公司预订网站)。因此,您可以为所有验证规则创建if/else-if/else或switch/case语句的loooooong列表,但是有一种更好的表单验证方法。

我推荐的客户端工作是建立一个正则表达式的JSON对象,它检查有效输入字段值的合法模式。 RegEx字符串将根据字符串规则确定用户的输入是有效的还是无效的。对于invalids,您可以通过添加“.invalid”类名来标记字段。您也可以使用jQuery打开任何特定的错误消息。您仍然希望构建服务器端验证,但至少预构建的RegEx值很容易在线查​​找&将有助于简化您的验证,以便您不必维护巨大的条件代码块(if/else -if/else & switch/case语句)。在条件块中错过验证规则很容易,但RegEx语句会捕获它们。

因此,人们认为“正确的方式”可能并不重要。每个人都会有不同的意见。无论适合你&您的网站是正确的方式为你。最好是批判性地思考你正在构建的东西,以便你将来学习更容易构建表单验证的技能。

首先查看此RegEx网站的示例部分:http://www.regular-expressions.info或者在网上搜索电子邮件地址,电话号码,IP地址,邮政编码,州名缩写,信用卡号格式等的预制RegEx字符串...您可以测试他们与喜欢的在线工具:http://regexr.com或离线工具,如:正则表达式生成器,这比在:https://sourceforge.net/projects/regexbuilder/

下面是一个例子,这是我几年前建:http://www.eonline.com/resources/js/libs/eol/eol.regEx.js

我会今天的构建方式不同,但它具有.match()函数+一个启动器JSON RegEx对象。它展示了如何复杂的表单验证模式匹配。哦,你会想确保将垃圾输入值保存在数据库之外。电子邮件如:[email protected]或州名如“XY”或名字如“Darth”,姓氏如“Vader”。祝你好运!