我有一组复选框和相应的文本框。我可以逐个获取每个复选框,但是如何获取文本框组以便我可以验证它们?
以下是我的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
答案 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");