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

也许我只是在这里误解了一些东西,但我认为你错过了一个 else:

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 回答