如何使用javascript验证一组文本框?

时间:2010-11-19 08:34:09

标签: javascript

我有一组复选框和相应的文本框。我可以逐个获取每个复选框,但是如何获取文本框组以便我可以验证它们?

以下是我的javascript代码:

function validate_orderform(proform) 
{           
var flag=0;
for (var i = 0; i < proform.chk.length; i++) {
   if (proform.chk[i].checked && proform.quant[i].value=="") {       
        flag=1;
   }
}

if(flag==1){
return false;
}

return true;
}

和我的HTML代码:

<td><input type="checkbox" id="chk1" name="chk"></td>
<td><input type="text" size="10" id="quant1" name="quant1"></td>...and so on

2 个答案:

答案 0 :(得分:1)

如果文本框的名称不同,则可以通过

访问所有文本框
 var txtObjList = document.getElementsByTagName("input");
 for(var i=0; i < txtObjList.length; i++){
    if(txtObjList[i].getAttribute("type") == "text" && this.value != ""){
      // success for i+1 textbox
   }
 }

或者您可以为所有文本框指定公共类名,然后可以通过

进行访问
 var txtObjList = document.getElementsByClassName("classname");
 for(var i=0; i < txtObjList.length; i++){
    if(this.value != ""){
      // success for i+1 textbox
   }
 }

请记住,使用jquery等javascript库,原型你的工作会更简单。

答案 1 :(得分:0)

您可以使用几种方法,您可以使用document.getElementsByTagName来检索所有输入元素,检查它们的类型等...它可以工作,但它很慢并且可能很昂贵,具体取决于您的表单的复杂程度。

如果您有一组复选框,并且每个复选框都有自己的文本框,那么您可以对它们进行分组,因此为每种类型添加一个通用名称,例如

Entry 1:
<input type="checkbox" id="chk1" name="chk"/>
<input type="text" id="quant1" name="quant"/>

Entry 2:
<input type="checkbox" id="chk2" name="chk"/>
<input type="text" id="quant2" name="quant"/>

然后你可以使用document.getElementsByName方法,所以在这个实例中,下面将为你的文本框检索2个对象的集合:

var myTextBoxes = document.getElementsByName("quant");