echo '
<td><input type="checkbox" name="'.$data2["name"].'" value="'.$data2["name"].'"
onclick="document.getElementById(numberof'.$data2["name"].').disabled=this.checked;"></td>
<td><input type="text" size="1" name="numberof'.$data2["name"].'" value="1" " ></td>';
您好!
我在这个问题中使用了最后一个解决方案,但它不起作用。
How to disable textbox depending on checkbox checked
它有什么问题?
祝你好运, 苏西:*
答案 0 :(得分:1)
尝试替换
onclick="document.getElementById(numberof'.$data2["name"].')
与
onclick="document.getElementsByName(numberof'.$data2["name"].')
因为你的文本框没有id,所以你只使用名称。所以按名称获取元素。
您也可以尝试这样(可选)
<td><input type="checkbox" name="<?=$data2[\"name\"];?>" value="<?=$data2[\"name\"];?>"
onclick="document.getElementsByName('numberof<?=$data2[\"name\"];?>"').disabled=this.checked;">
</td>
<td>
<input type="text" size="1" name="numberof<?=$data2[\"name\"];?>" value="1" " >
</td>
答案 1 :(得分:1)
您正在使用getElementById,但您的文本字段仅使用名称而不使用ID。
这是一个快速修复:
<td><input type="text" size="1" id = "numberof'.$data2["name"].'" name="numberof'.$data2["name"].'" value="1" " ></td>';
答案 2 :(得分:1)
echo "
<td><input type='checkbox' name='".$data2['name']."' value='".$data2['name']."'
onclick=\"document.getElementById('numberof".$data2['name']."').disabled=this.checked;\"> </td>
<td><input type='text' size='1' id='numberof".$data2['name']."' value='1'></td>";
答案 3 :(得分:1)
由于文字输入没有id
但只有name
,因此您需要使用javascript函数getElementsByName()
访问它。
onclick="document.getElementsByName(numberof'.$data2["name"].').disabled=this.checked;"></td>
您所犯的另一个错误是忘记将名称括在引号内。
getElementById(\'numberof'.$data2["name"].'\')
因此,您的最终代码应如下所示:
echo '
<td><input type="checkbox" name="'.$data2["name"].'" value="'.$data2["name"].'"
onclick="document.getElementsByName(\'numberof'.$data2["name"].'\').disabled=this.checked;"></td>
<td><input type="text" size="1" name="numberof'.$data2["name"].'" value="1" " ></td>';
答案 4 :(得分:1)
使用以下代码:
echo '
<td><input type="checkbox" name="'.$data2["name"].'" value="'.$data2["name"].'"
onclick="document.getElementsByName(\'numberof'.$data2["name"].'\')[0].disabled=this.checked;"></td>
<td><input type="text" size="1" name="numberof'.$data2["name"].'" value="1" " ></td>';