在此代码中,在打开页面时,文本字段将被禁用。用户可以使用复选框启用或禁用文本字段。不幸的是,当结果不止一个时,禁用不起作用,但只有一个记录,禁用和启用工作。问题出在哪里?
myVariable
答案 0 :(得分:1)
如果您有多个复选框,则需要知道要启用或禁用的复选框。 一种可能的解决方案是在while循环中为textarea添加一个id,并使用变量$ i使其唯一,例如' explain_1'。 然后你也可以将这个$ i传递给javascript函数,例如' enable_text(1)''这样这个函数可以通过id获得textarea。
也许这会解决您的问题:
变化:
echo'<input type="checkbox" name=others onclick="enable_text(this.checked)" >شکایت دارم <br>';
echo'<textarea name="explain" id="explain" cols="" rows="" style="width:300 ;height:300">
</textarea>'.'<br/>';
为:
echo'<input type="checkbox" name=others onclick="enable_text(' . $i . ')" >شکایت دارم <br>';
echo'<textarea name="explain" id="explain_' . $i . '" cols="" rows="" style="width:300 ;height:300" disabled>
</textarea>'.'<br/>';
然后改变
<script language="JavaScript">
<!--
function enable_text(status)
{
status=!status;
document.f1.explain.disabled = status;
}
//-->
</script>
为:
<script language="JavaScript">
<!--
function enable_text(number) {
var elm = document.getElementById('explain_' + number);
elm.disabled = !elm.disabled;
}
//-->
</script>
答案 1 :(得分:0)
它放置了多个具有相同id
属性的元素,这就是失败的原因。
在$i
和函数中包含迭代器id
:
echo '<input type="checkbox" name=others onclick="enable_text(this, $i)" >شکایت دارم <br/>';
echo '<textarea name="explain" id="explain$i" cols="" rows="" style="width:300 ;height:300"></textarea><br/>';
将功能更改为:
function enable_text(element, i) {
document.getElementById('explain' + i).disabled = !element.checked;
}