如何验证阵列
How do I Validate Arrays?
我有一个表单,它有4列,用户可以动态添加或删除行。现在我尝试通过javascript验证这一点,代码如下:-
<script type="text/javascript">
function chkempty()
{
var x=document.forms["main"]["qty[]"].value
var y=document.forms["main"]["price[]"].value
var z=document.forms["main"]["item[]"].value
if (x==null || x=="") {
alert("Quantity must be filled out");
return false;
}
if (y==null || y=="") {
alert("Price must be filled out");
return false;
}
if (z==null || z=="") {
alert("Itemcode cannot be empty");
return false;
}
}
它适用于第一行,但当用户选择多行时,即使在填充了值之后,也会收到验证错误消息。有人能帮我做这个吗?谢谢,保持微笑。
这里有一个非常简单的解决方案:
使用Jquery内联验证器
向表中添加新行内容时,只需确保定义了正确的类(如class="validate[required,custom[email]]"
),即可确保它将根据您的意愿正确验证字段。我经常只做必需的元素,但我上面给出的例子也做电子邮件格式检查。还有其他内置的电话号码、货币等检查程序。
如果用户混淆了一个输入,它将在带有错误的字段旁边显示一个视觉上吸引人的类似工具提示的对话框。
完成。易于理解的清洁的快速的
这些解决方案都不能弥补您真正需要在服务器端进行消毒的事实。任何Javascript都可以被绕过,所以它不能100%保证安全或准确。但这是一个良好的开端,可以为用户提供高质量、即时的反馈。
var x=document.forms["main"]["qty[]"].value
我想,您应该在元素上循环并验证每个值,而不是试图从数组中获取值。
var x=document.forms["main"]["qty"];
for ( var i=0, len=x.length; i<len; ++i ){
// validate the value of the current element.
}
编辑:添加了一个小示例。
document.forms.form_id.control_name
将返回HTMLElementNode或NodeList,具体取决于是否有一个或多个匹配元素。
你可以做一些类似的事情:
var x=document.forms["main"]["qty[]"]
if (x.nodeName) {
// Is a Node. Work with its value
} else {
// Is a NodeList, loop over it with for
for (var i = 0; i < x.length; i++) {
var node = x[i];
// Work with its value
}
}
相关文章:
- 正在验证8个真/假复选框或复选框中的2个
- 借助asp.net验证或java脚本对多个文本进行验证
- jQuery自定义验证比较多个输入的序列
- 使用html中的外部javascript进行数据验证
- 如何使用jquery Validation验证Formspread
- jquery中的文本框验证
- 在验证和发送邮件后更改联系人表单的 html
- 代码不会验证
- JS验证ajax返回的html中的表单数据
- 同步调用,直到用户通过angular验证为访问者
- 带有加号的电话号码验证(可选)
- 解析javascript表单验证器
- 两位数的月份日期验证
- 使用angularjs验证文本框中的电子邮件
- 验证Javascript中的Textarea
- 使用regex的jquery keydown绑定不会验证撇号和句点
- 验证阵列的所有列是否确定模式
- 敲除验证多个层次的深度可观测阵列
- 可以验证1个日期,但不能验证电机阵列[]
- 如何验证阵列