如何将表单元素传递给javascript验证函数?

时间:2009-08-25 19:33:12

标签: javascript forms validation

我有一个列出用户的表单,每个用户都有一个下拉菜单(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元​​素?!还是有另一种方法可以做到这一点吗?

2 个答案:

答案 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]
}