单击“复选框”后启用“文本字段”

时间:2013-06-17 12:10:34

标签: php jquery html

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

它有什么问题?

祝你好运, 苏西:*

5 个答案:

答案 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>';