日期:2014-05-20  浏览次数:20943 次

checkbox的name不同,用JS怎么取呢?
[code=Jsp]         
          <tr>
            <td> <div>品种: <div> </td>
            <td> <div>
            <logic:iterate id="sa" name="UserForm" property="sas" indexId="s">
  <html:checkbox property=" <%="sa["+s+"].check"%>" />
  <c:out value="${sa.name}"/>
  <html:hidden property=" <%="sa["+s+"].id"%>"/>
 
      </logic:iterate>
            </div> </td>
          </tr>
[/code]

上面是截取的关键部分代码,翻译之后是
[code=Jsp]
<td> <div>品种: </div> </td>
            <td> <div>
           
<input type="checkbox" name="sa[0].check" value="on"> //check是sa的属性,表中的一个字段
  机织物1
<input type="hidden" name="sa[0].id" value="1102">
 
   
<input type="checkbox" name="sa[1].check" value="on">
  机织物2
<input type="hidden" name="sa[1].id" value="1103">
 
   
<input type="checkbox" name="sa[2].check" value="on">
  绸缎
<input type="hidden" name="sa[2].id" value="11">
 
   
<input type="checkbox" name="sa[3].check" value="on" >
  家居
<input type="hidden" name="sa[3].id" value="22">

.
                .//下面的省略了
                .
                .
            </div> </td>
          </tr>
[/code]

我是想做表单验证,这些复选框,不空就行,选几个无所谓。我的想法是抓出来,判断(.length>0){......} 

大侠们,这个JS怎么写?


------解决方案--------------------
探讨
引用:
这些checkbox用同一个name, js里面用getElementByName获取checkbox的数组,然后循环判断一下就好了


请问大侠,在现有的情况下,我要是不改NAME。怎么实现呢?改一个地方其他好些地方都要改

------解决方案--------------------
探讨
引用:
这些checkbox用同一个name, js里面用getElementByName获取checkbox的数组,然后循环判断一下就好了


请问大侠,在现有的情况下,我要是不改NAME。怎么实现呢?改一个地方其他好些地方都要改

------解决方案--------------------
既然名字有规律,那么用getElementsByName就可以了吧:

JScript code

for (var i = 0; i < n; i++) {
    var oCheckBox = document.getElementsByName('sa[' + i + '].check')[0];
    if (oCheckBox.checked) {
        ...
    }
}

------解决方案--------------------
探讨
引用:
这些checkbox用同一个name, js里面用getElementByName获取checkbox的数组,然后循环判断一下就好了


请问大侠,在现有的情况下,我要是不改NAME。怎么实现呢?改一个地方其他好些地方都要改