0

私はまだ、このコードを ie9 で正しく動作させることができていません。ただし、Firefoxでは問題なく動作します。ie9 で動作させるには、「document.getElementById」を使用する必要がありますか? もしそうなら、それはどこに収まりますか?

function dbasetype(){

var dbasedata = document.forms[0]._dbase_name.value;
        dbasedata = dbasedata.toUpperCase();
        dbasedata = dbasedata.replace(/\s/g, "");

var _area = document.forms[0]._area;        
var _dbase_name = document.forms[0]._dbase_name;

if  (dbasedata.indexOf("UK_CONTACTS")==-1) {
        _area.value = _dbase_name.value;            
     }  else { setarea(); } 
     }

編集 上記のコードは、保存ボタンがクリックされると、データベース内のフィールド (個人のアクセスを制御する) を更新します。前に述べたように Firefox では問題なく動作しますが、これを ie9 で実行すると、更新されるはずのフィールドが空白に置き換えられ、ユーザーは連絡先レコードにアクセスできなくなります。

4

1 に答える 1

2

問題は、すべての ID がグローバル (読み取り専用) オブジェクトでもあるという愚かなプロパティが IE にあることです。次のように、JavaScript で変数の名前を変更するだけです。

function dbasetype() {
  var dbasedata = document.forms[0]._dbase_name.value;
  dbasedata = dbasedata.toUpperCase().replace(/\s/g, "");

  var x_area = document.forms[0]._area;        
  var x_dbase_name = document.forms[0]._dbase_name;

  if(dbasedata.indexOf("UK_CONTACTS")==-1) {
    x_area.value = x_dbase_name.value;            
  } else {
    setarea();
  } 
}
于 2012-06-05T16:58:20.720 に答える