0

document.forms[0]._area.value = dbasedata;以下のコードは、フォームのロード後にそのフィールドのデータが変更された場合にのみデータをコピーする行まで正常に機能します。何かに変更された場合 (元の値に戻った場合でも) は機能します。
理由を知っている人はいますか?

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


  if(dbasedata2.indexOf("UK_CONTACTS")<0) {
    document.forms[0]._area.value = dbasedata;           
  }  else { setarea(); } 
}

編集ドロップダウンフィールドであることに関係があると思います。

4

1 に答える 1

0

たぶん私はここで何かを誤解しているだけですが、あなたは他のものを見逃していると思います:

if(dbasedata2.indexOf("UK_CONTACTS")<0) {
    document.forms[0]._area.value = dbasedata;           
  }  { setarea(); } 

する必要があります:

if(dbasedata2.indexOf("UK_CONTACTS")<0) {
    document.forms[0]._area.value = dbasedata;           
} else { 
    setarea(); 
} 

コードにあるように、setareaは常に呼び出されます。何であるかを見ずに言うのは難しいsetAreaですが、if内に設定された値を上書きしている可能性があります。

于 2012-06-05T20:14:37.187 に答える