2012-04-23 6 views
0
で無効にテキスト入力

次のスクリプトは、IE9でIE8で働いていたが、いないを有効にするには: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'とは何ですか? –

+0

* "次のスクリプトはIE8では動作しましたがIE9では動作しませんでした" * Worked ** how **?あなたは何が起こると思いますか?代わりに何が起こるのですか?フォーム内のすべての入力要素を無効にするようにフォームを無効にすることを期待していますか? –

+0

これらはイベント関数です。最新のブラウザから従来のバージョンに戻す方法を見ていきたいと思います。 –

答えて

0

findFormがフォームの名前の場合、document.findFormではなくwindow.findFormが必要です。 if/elseではなく、他のフィールドのcheckedプロパティの結果を直接使用することもできます。あなたのコードは次のように変更されます:

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

+0

@ user1352335:* "findFormはフォームの名前です" *ああ、 'document.findForm'ではなく' window.findForm'が必要です。 –

+0

@ user1352335:* "findFormはフォームの名前です" *あぁ、 'document.findForm'ではなく' window.findForm'が必要です。また、どういうわけか、フォーム内のすべてのコントロールを無効にしたいという考えを得ましたが、今質問を読んで、1つのフィールドを無効にしたいと思っています。私は答えを更新しました。 –