复选框值未显示

时间:2011-01-07 06:35:12

标签: javascript dom

我有以下代码

   <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);

这给了我一个提醒,但价值未定义。

感谢

2 个答案:

答案 0 :(得分:1)

假设控件的格式为form(这不是一个好名字),那么问题是您没有任何名为“products”的控件,但是正试图访问具有该名称的控件。

products更改为所需控件的名称(或id)(因为名称是唯一的,除去[0])或将所有复选框的名称更改为{{ 1}}。

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

  1. 您使用的是products,已弃用,演示文稿和垃圾
  2. 您没有使用可访问性所需的<font>(包括使复选框的点击目标大于微小)
  3. 似乎 使用表格进行布局
  4. <label>过于通用了ID
  5. 更好的风格是form
  6. document.form.ID_OF_FORM.elements.NAMES_OF_CHECKBOXES[0]属性是布尔值,checked是多余的

答案 1 :(得分:0)

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