調用addEvent(); 放在</body>在後面

解决方案 »

  1.   


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"><head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
    <title>无标题 1</title>
    </head>
    <style type="text/css">
    img{
    position:fixed;
    left:100px;
    top:100px;
    }
    </style>
    <body>
    <form action="aa" id="aa">
    <input type="text"/>
    <textarea></textarea>
    </form>
    <script language="javascript"> 
    function addEvent() 

    var o; 
    var form = document.getElementById("aa");
    for (var i=0;i <form.elements.length;i++) 

    o=form.elements[i]; 
    o.onblur = m1; //如果不需要为一个事件添加多个处理函数的话,就直接用这样的方式吧,没有兼容性问题,像你那样添加,兼容性不好,IE和FireFox是不一样的
    o.onfocus= m2; 


    function m1() 

    this.style.backgroundColor="#c0c0c0"; 

    function m2() 

    this.style.backgroundColor="#0000ff"; 

    addEvent(); 
    </script> 
    </body></html>
      

  2.   


    <form name='form'>
    <INPUT TYPE="text" NAME="aa">
    <INPUT TYPE="text" NAME="aa">
    <INPUT TYPE="text" NAME="aa">
    <INPUT TYPE="checkbox">
    </form>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    var ele = document.form.elements;
    for(var i = 0; i < ele.length; i++){
    ele[i].attachEvent("onfocus",fun1(ele[i]))
    ele[i].attachEvent("onblur",fun2(ele[i]))
    }
    function fun1(obj){
    return function(){
    obj.style.backgroundColor="red";
    }
    }
    function fun2(obj){
    return function(){
    obj.style.backgroundColor="";
    }
    }
    //-->
    </SCRIPT>