2011-12-14 110 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();'); 

而且,我认为错误消息无关这个问题。这是错误的,但这是另一个问题。