2012-04-23 38 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

相關問題