javascript有时无法启用/禁用文本区域控件
javascript sometimes fails to enable/disable textarea controls
oi。我生成html和javascript以在c#web浏览器中使用,并通过firefox使用firebug对其进行调试。
function able(id,ckd) {
if(document.getElementById) {
var el = document.getElementById("answerswer"+id);
el.disabled = ckd;
el = document.getElementById("comment"+id);
el.disabled = ckd;
}
}
用于对抗
<html><head><style type="text/css"></style></head><body><form>
<table>
<tr>
<td><input name="asked" id="asked1" type="checkbox" checked onchange="able('1',!this.checked);" /> Active</td>
<td><textarea name="answerswer" id="answerswer1">Some big, fat answer.</textarea></td>
<td><textarea name="comment" id="comment1">Some snarky comment.</textarea></td>
</tr>
<tr>
<td><input name="asked" id="asked2" type="checkbox" onchange="answerswer2.disabled=!this.checked;comment2.disabled=!this.checked;" /> Active</td>
<td><textarea name="answerswer" id="answerswer2" disabled></textarea></td>
<td><textarea name="comment" id="comment2" disabled></textarea></td>
</tr>
</table>
<input name="save" type="button" onclick="window.external.UpdateCandidateQuestions();" value="save" />
<input name="reset" type="reset" value="reset" />
</form></body></html>
真正生成的html是LONG,但格式良好,在测试时我小心地避免缓存页面。第二种方法(asked2.onchange使用内联javascript)的效果不如第一种方法(tasked1.onchange调用head中定义的javascript函数)。id计数器(即,询问"1"、询问"2"、询问的"3"等)以及答案和注释innertext值要么来自数据库,要么通过web浏览器输入。有一个一致的失败点,firebug在其中穿行,就好像它工作了一样,但它失败了。如果在完整数据失败点之前和/或之后删除表行,则失败点会移动。一旦失败,页面的其余部分也会失败。
请告诉我在其他地方可以调试这个pima。
使用带有单选按钮的change事件很少是个好主意。根据W3C HTML 4.01规范,onchange事件:
当控件丢失时发生输入焦点及其值自获得关注以来进行了修改。http://www.w3.org/TR/html401/interact/scripts.html#adef-onchange
IE对所有表单控件都是这样工作的——你需要修改控件,然后单击其他地方使其失去焦点,这样就可以调度一个更改事件(如果状态发生了更改)。其他浏览器会发送一个更改事件。如果点击改变了按钮的状态,它不需要失去焦点。
最好使用onclick监听器,并根据控件是否被检查来执行一些操作。
以上内容可能会也可能不会解决您的问题。就我所见,没有理由不使用able()函数,只需将onchange
更改为onclick
即可。
- onkeyup无法动态创建多个文本区域
- 具有所有样式的文本正在复制到可编辑文本区域
- 在文本区域POST后解码JSON
- 在文本区域中使用jQuery.text()保持换行符
- ng在下拉列表和文本区域提交
- 将文本插入光标所在的文本区域
- 离开页面导航后保留文本区域内容
- Javascript-在文本区域中断,但不在段落中中断
- 当选择值x时,Javascript需要在正确的位置显示文本区域,从而循环通过具有选择选项的表单
- 测试文本区域中的特定文本格式
- 文本编辑后,append函数不适用于文本区域
- 如何在ReactJs中链接下拉列表和文本区域
- I'我试图在文本区域中进行特定的输入,调用特定的javascript函数,但没有成功;不起作用
- 使用JSON文件中的变量(字符串)填充文本区域
- JavaScript-如果以前不存在文本,如何从文本区域删除新行
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- 如何为动态创建的文本区域中输入的值更新ng模型
- 延迟高亮显示文本区域中的文本
- 将字母添加到文本区域的末尾
- TinyMCE在新添加的文本区域