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" name="numberof'.$data2["name"].'"  value="1" " ></td>';

你好!

我在这个问题中使用了最后一个解决方案,但它不起作用。

如何根据选中的复选框禁用文本框

它有什么问题?

最好的问候,苏西:*

4

5 回答 5

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>';
于 2013-06-17T12:21:34.910 回答
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>';
于 2013-06-17T12:20:10.117 回答
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>
于 2013-06-17T12:12:44.680 回答
1

您正在使用 getElementById,但您的文本字段仅使用名称而没有 id。

这是一个快速修复:

<td><input type="text" size="1" id = "numberof'.$data2["name"].'" name="numberof'.$data2["name"].'"  value="1" " ></td>';
于 2013-06-17T12:16:16.050 回答
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>";
于 2013-06-17T12:18:09.797 回答