我有一个包含多个输入的表单,我想验证所需的表单。
container.all("input").each(function(){
if(this.hasAttribute("required")){
if((this.val()==="") {
undentifiedFunction()
}
}
(错误地)undentifiedFunction()未定义,它根据需要对输入进行了验证。我该怎么做正确的方法?
答案 0 :(得分:2)
你可能想退后一步&查看表单验证的整体情况。在这里要求一个简单的代码片段会给你带来麻烦,直到你明白你真正需要做的是什么。
您想要验证每个输入字段&如果它失败了,那么你想要用红色边框突出显示那个输入&可选择打开输入下方的短信,说明错误。我们的想法是尽可能方便用户,而不是程序员的最终用户。
用户需要知道信用卡号码字段不能包含字母。或者邮政编码字段长度不能为3个字符。或者电话号码字段长度不能为5位数。他们可能会尝试添加这些字符或意外地在长形式上做错事(想想:航空公司预订网站)。因此,您可以为所有验证规则制作if / else-if / else或switch / case语句的loooooong列表,但有更好的方法可以进行表单验证。
我建议客户端工作的是构建正则表达式的JSON对象,它检查有效输入字段值的合法模式。 RegEx字符串将根据字符串规则确定用户的输入是有效还是无效。对于invalids,您可以通过添加" .invalid"来标记字段。班级名称。您还可以使用jQuery打开任何特定的错误消息。您仍然希望构建服务器端验证,但至少预先构建的RegEx值很容易在线查找。将有助于简化您的验证,因此您不必维护巨大的条件代码块(如果/ else-if / else& switch / case语句)。在条件块中很容易错过验证规则,但RegEx语句会捕获它们。
所以,人们认为正确的方式可能并不重要。是。每个人都会有不同的意见。什么对你有用&您的网站是正确的方式。最好是批判性地思考你正在构建的内容,以便你学习将来更容易构建表单验证的技能。
首先查看此RegEx网站的示例部分:http://www.regular-expressions.info或在网上搜索电子邮件地址,电话号码,IP地址,邮政编码,州名缩写,信用卡的预建RegEx字符串数字格式等...您可以使用以下在线工具测试它们:http://regexr.com或离线工具,例如:RegEx Builder,它位于:https://sourceforge.net/projects/regexbuilder/
这是我几年前建立的一个例子:http://www.eonline.com/resources/js/libs/eol/eol.regEx.js
我今天构建的方式有所不同,但它有.match()函数+一个初始JSON RegEx对象。它展示了复杂的表单验证模式匹配。哦,你要确保将垃圾输入值保留在数据库之外。电子邮件如:blah@blah.com或州名,如" XY"或者像#34; Darth"和姓氏一样#34; Vader"。祝你好运!