我有一个列出用户的表单,每个用户都有一个下拉菜单(2个选项:waiting,finished)和一个评论文本框。下拉菜单每个都标记为“status-userid”,注释文本框标记为“comments-userid”...因此对于用户92,其行中的字段标记为status-92和comments-92。
我需要以下列方式验证表单: 如果状态值为“已完成”,我必须确保用户输入的注释与该特定下拉菜单相对应。
到目前为止,我有:
function validate_form () {
valid = true;
/*here's where i need to loop through all form elements */
if ( document.demerits.status-92.value == "finished" &&
document.demerits.comments-92.value == "")
{
alert ( "Comments are required!" );
valid = false;
}
return valid;
}
如何遍历表单数组中的所有status-userid元素?!还是有另一种方法可以做到这一点吗?
答案 0 :(得分:2)
这应该在原始Javascript(没有框架)中完成。
var form = document.demerits;
for (var i = 1; i <= 100; i++)
{
if (form["status-" + i.toString()].value == "finished" &&
form["comments-" + i.toString()].value == "")
{
// enable visibility of element next to comments indicating validation problem
valid = false;
}
}
使用警报会很糟糕。
答案 1 :(得分:0)
您需要在表单中收集一系列下拉菜单。这可以通过getElementsByTagName
获得。
var dropdowns = document.demerits.getElementsByTagName("select");
for (var i = 0; i < dropdowns.length; i++)
{
// You can now reference the individual dropdown with dropdowns[i]
}