当记录不止一个时,没有工作禁用文本字段

时间:2015-11-18 15:34:01

标签: javascript php

在此代码中,在打开页面时,文本字段将被禁用。用户可以使用复选框启用或禁用文本字段。不幸的是,当结果不止一个时,禁用不起作用,但只有一个记录,禁用和启用工作。问题出在哪里?

myVariable

2 个答案:

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