2011-12-14 29 views
0

我想添加新的屬性來選擇框名稱和ID是'firm_id'。到目前爲止,我已經嘗試使用此代碼,它在mozila中工作正常,但在IE中無法正常工作。找不到javascript錯誤

我這樣做與JavaScript,因爲選擇框來自ajax。 函數sbmtfrm()不在IE中調用。

錯誤:消息:'FB'未定義。

可能FB是一個在我的js lib文件中調用的對象,但現在我正在另一個saperate腳本標記中編寫代碼。

<script type="text/javascript"> 

    function sbmtfrm() 
    { 
     alert('now submitting...'); 
     document.frmsearch.submit(); 
    } 

    function setOnclickAtt(name) 
    { 
     alert("'"+name+"'" + document.getElementById(name).getAttribute('onchange')); 
     alert(document.getElementById(name)); 
     if(document.getElementById(name)) 
     { 
      alert('attrr changed'); 
      var ref = document.getElementById(name); 
      ref.setAttribute('onchange', 'sbmtfrm();'); 
      alert("now new atrr = " + document.getElementById(name).getAttribute('onchange')); 
     } 
     else 
     { 
      alert('again'); 
      setTimeout("setOnclickAtt('firm_id')",100); 
     } 
    } 

    setOnclickAtt('firm_id'); 

</script> 

任何建議或想法將不勝感激。

非常感謝。

+0

IE不喜歡無論FB是什麼,它的錯誤,所以不會執行後續的JavaScript。你需要解決FB問題,無論它在哪裏。 – 2011-12-14 12:37:59

+0

如果您使用其他腳本標記,則無關緊要。在項目文件中尋找FB並通過JS腳本檢查它的使用。 – Alfabravo 2011-12-14 12:39:52

回答

1

我認爲IE在事件處理方面很挑剔。嘗試:

ref.onchange = sbmtfrm; 

代替:

ref.setAttribute('onchange', 'sbmtfrm();'); 

而且,我認爲錯誤消息無關這個問題。這是錯誤的,但這是另一個問題。