2011-01-07 208 views
0

我有以下代码复选框值不显示

<tr> 
<td align=left colspan=6><table border="0"> 
    <tr> 
     <td><font class="body_text"> windows: <input name="pro1" id="products0" type="checkbox" value="5" test="5"></td> 

     <td><font class="body_text"> cpu: <input name="pro2" id="products1" type="checkbox" value="2" test="2"></td> 

     <td><font class="body_text"> keyboard: <input name="pro3" id="products2" type="checkbox" value="3" test="3"></td> 

     <td><font class="body_text"> mouse: <input name="pro4" id="products3" type="checkbox" value="4" test="4"></td> 


    </tr> 

,我试图让在DOM

if(document.form.products[0].checked == true) alert(document.form.products[0].value); 

第一个复选框的值这给了我一个警告,但其值未定义。

感谢

+0

你的PHP代码是无关紧要的,也是在路上。请显示您的PHP生成的代码,因为_that_是浏览器正在查看的内容。 – Phrogz 2011-01-07 06:39:11

+0

-1用于以非语义方式使用表格和`font`元素。 – zzzzBov 2011-01-07 07:04:28

回答

1

假设这些控件的格式为ID form(这不是一个好名字),那么问题在于,您没有任何使用“产品”名称的控件,但是您正试图使用该名称访问控件。

products更改为您想要的控件的名称(或ID)(因为名称是唯一的,请删除[0])或将所有复选框的名称更改为products

您还有一些与此问题没有直接关系的其他问题。

  1. 您正在使用<font>它被废弃了,表象和垃圾
  2. 您没有使用这是需要无障碍<label>(包括使点击目标复选框超过微小更大)
  3. 出现使用表格布局
  4. form太普通了一个id
  5. 更好的风格是document.form.ID_OF_FORM.elements.NAMES_OF_CHECKBOXES[0]
  6. checked属性是一个布尔值,== true是多余的
0

你有相同的id属性的所有输入。这在语法上是非法的,也可能是你麻烦的原因。让每一个都独一无二。