2012-04-23 67 views
0

下面的脚本在IE8中工作,但不是在IE9:使用Javascript - 如何启用/禁用文本输入在IE9

function toggleSelect(fieldName) 
{ 
    var idx = fieldName.lastIndexOf("_"); 
    var sub = fieldName.substring(19,idx); 
    if (document.findForm["cb_Row_PageAutoDelete_" + sub].checked) { 
      document.findForm["SHIP_QTY_" + sub].disabled=false ; 
    } else { 
     document.findForm["SHIP_QTY_" + sub].disabled=true ; 
    } 
    return true; 
} 

我可以显示SHIP_QTY字段的值,所以我知道它的页面,但在上禁用功能不起作用。

感谢您的帮助。

+1

什么是'document.findForm'? – 2012-04-23 21:33:24

+0

*“以下脚本在IE8中工作,但不在IE9中”*工作**如何**?你期望会发生什么?会发生什么呢?您是否期望禁用表单以禁用其中的所有输入元素? – 2012-04-23 21:34:26

+0

这些是事件函数,我会研究如何从最新的浏览器返回到旧版本。 – 2012-04-23 21:36:20

回答

0

如果findForm是表单的名称,则需要window.findForm而不是document.findForm。您也可以直接使用其他字段的checked属性的结果而不是if/else。所以你的代码更改为:

function toggleSelect(fieldName) 
{ 
    var idx = fieldName.lastIndexOf("_"); 
    var sub = fieldName.substring(19,idx); 
    window.findForm["SHIP_QTY_" + sub].disabled = window.findForm["cb_Row_PageAutoDelete_" + sub].checked; 
    return true; 
} 
+0

findForm是表单的名称。用户以表格格式显示多个记录,当检查一行上的复选框时,该行上的另一个输入需要变为可编辑的,反之亦然。无法启用/禁用在IE9中工作。 – user1352335 2012-04-24 13:56:00

+0

@ user1352335:*“findForm是窗体的名称”*啊,那么你想'window.findForm',而不是'document.findForm'。 – 2012-04-24 13:57:15

+0

@ user1352335:*“findForm是窗体的名字”*啊,那么你想'window.findForm',而不是'document.findForm'。另外,不知何故,我想到了想要禁用表单中的所有控件的想法,但现在阅读你的问题,我想你只是想禁用一个字段。我已经更新了答案。 – 2012-04-24 14:18:44