<input type="button" name="b1" id='b1' value="text" onclick="alert('test 1')" />
我想通过 js 来修改 b1的onclick事件的代码,在原来的代码基础上,增加 alert('test 2'); 这行代码, 请注意, onclick事件的代码是服务器动态生成的,我要做的是在原来代码的基础上,增加一些代码.

解决方案 »

  1.   

    object.attachEvent(sEvent, fpNotify);
    如:attachEvent ('onmouseout', Restore);function Restore()
    {
      
    }
      

  2.   

    object.attachEvent(sEvent, fpNotify);
    如:attachEvent ('onmouseout', Restore);function Restore()
    {
      
    }
      

  3.   

    <HTML>
    <HEAD>
    <script language="javascript">
    attachEvent("onblur", blur);function blur()

      document.all.form.username.attachEvent("onblur", blur);
      if(event.srcElement == document.all.form.username){
        alert("efewef");
      }  
    }
    </script>
    </HEAD>
    <BODY>
    <form name="form">
    <input type="text" name="username" onblur="alert('hello')">
    </form>
    </BODY>
      

  4.   

    document.getElementById('b1').addEventListener(
        'click',function(ev){alert('test2');}, false
    );
      

  5.   

    试试这个
    function bind(o,evt,fn,cb){
    var aE='attachEvent';
    var aEL='addEventListener';
    if(!o[aE]&&o[aEL]){
    return o[aEL](evt,fn,!!cb);
    }
    return o[aE]('on'+evt,fn);
    }
    bind(document.getElementById('b1'),'click',function(){alert('test 2');});
      

  6.   


    这个只适用IE用,有没有适合firefox的?
      

  7.   

    <HTML> 
    <HEAD> </HEAD> 
    <BODY> 
    <form name="form"> 
    <input type="button" name="b1" id='b1' value="text"  /> <script language="javascript"> 
    var b1 = document.getElementById('b1');
    /* 其中$str变量可以为你服务器返回的变量*/$str = 'hello world';if(b1.attachEvent){ //MSIE 方法
    b1.attachEvent("onclick", function(){alertMsg($str)});  
    }else if(b1.addEventListener){ // W3C方法
    b1.addEventListener('click',function(){ alertMsg($str)});
    }function alertMsg(s){
     alert(s);
    }</script> 
    </form> 
    </BODY> 
      

  8.   

    <!--/* 对不起,上一个回复中,b1.addEventListener这行参数打错了,以下为正确代码!*/--><!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>
    <BODY> 
    <form name="form"> 
    <input type="button" name="b1" id='b1' value="text"  /> <script language="javascript"> 
    var b1 = document.getElementById('b1');var $str = 'hello ';
    if(b1.attachEvent){ //MSIE 方法
    b1.attachEvent("onclick", function(){alertMsg($str)});  
    }else if(b1.addEventListener){ // W3C方法
    b1.addEventListener('click',function(){ alertMsg($str)},false); /*这行为正确代码*/
    }function alertMsg(s){
     alert(s);
    }</script> 
    </form> 
    </BODY> 
      

  9.   

    既然是从服务器中生成的.
    哪input可以换成服务器控件的(asp.net)
    不就可以解决你的说的么?
      

  10.   

    类似动态切入点的问题。不太好办呢?
    function.prototype.createSequence(fcn,scope)=function(fcn, scope){
            if(typeof fcn != "function"){
                return this;
            }
            var method = this;
            return function() {
                var retval = method.apply(this || window, arguments);
                fcn.apply(scope || this || window, arguments);
                return retval;
            };
        };var sayHi = function(name){
        alert('Hi, ' + name);
    }sayHi('Fred'); // alerts "Hi, Fred"var sayGoodbye = sayHi.createSequence(function(name){
        alert('Bye, ' + name);
    });sayGoodbye('Fred'); // both alerts show
      

  11.   

    IE :document.getElementById("").attachEvent("onclick",myFunction);FF :document.getElementById("").addEventListener("click",myFunction,false);function myFunction(){
    }
      

  12.   

    <input type="button" name="b1" id='b1' value="text" onclick="javascript:alert('test 1');" /> 
      

  13.   

    <HTML> 
    <HEAD> 
    <script language="javascript"> 
    attachEvent("onblur", blur); function blur() 

      document.all.form.username.attachEvent("onblur", blur); 
      if(event.srcElement == document.all.form.username){ 
        alert("efewef"); 
      }  

    </script> 
    </HEAD> 
    <BODY> 
    <form name="form"> 
    <input type="text" name="username" onblur="alert('hello')"> 
    </form> 
    </BODY>
      

  14.   

    var bbb= document. getElementById('d1');
    bbb.onclick = alert('click it');
      

  15.   

    <script type="text/javascript">
    var inputcCtrls = document.body.getElementsByTagName("input");
    for(m=0; m<inputcCtrls.length; m++) {
      if(inputcCtrls[m].type=="button"&&inputcCtrls[m].value=="text")
      {
        var funcHack= inputcCtrls[m].onclick;
        var strHack = String(funcHack);
        var startParenth = strHack.indexOf('{');
        strHack = strHack.substring(startParenth+1);
        var endParenth = strHack.indexOf('}');
        strHack = strHack.substring(0, endParenth-1);
        strHack = "if(confirm('Want to create a new response?')) { document.forms[0].action = 'NewForm.aspx?Source=http%3a%2f%2fservername%2fLists%2fSurveyName%2fNewForm.aspx'; } else { document.forms[0].action = 'NewForm.aspx?Source=http%3a%2f%2fservername%2fLists%SurveyName%2foverview.aspx'; } " + strHack;
        var modifyFinishBehavior = new Function(strHack);
        inputcCtrls[m].onclick = modifyFinishBehavior;
        }
    }
    自己定义的一部分代码+原来的代码, 测试通过.
    </script>
      

  16.   

    当然可以方法简单.
    <input type="button" id="b1"><script>
    b1.onclick=function()
    {
        .................
    }
    </script>
      

  17.   

    你可以随时修改这个 b1.onclick=function(){...} 中的内容. 可以动态的任意写这个东西.
      

  18.   


    这个才是我最想要的!我就是为这个发贴的. 也多谢jijiwaiwai0798的回答!
      

  19.   


    <HTML> 
    <HEAD> 
    <script language="javascript"> 
    function attached()

    alert("test 2"); 

    function attach() {
    document.getElementById("b1").attachEvent("onclick", attached); 
    }
    </script> 
    </HEAD> <BODY onload="attach();">
    <form id="form1"> 
    <input type="button" name="b1" id='b1' value="text" onclick="alert('test 1')" /> 
    </form> 
    </BODY> 
    </HTML>
      

  20.   

    <input type="button" name="b1" id='b1' value="text" onclick="fun1('test1')" /><input type="button" name="b1" id='b1' value="text" onclick="fun1('test1')" />
    <script language = 'javascript'>
    function fun1(obj)
    {
      alert(obj);
    }
    </script>
     
    这样在js中控制想弹出的字符就可以了
      

  21.   

    <input type="hidden" id="rtnStr">
    <script language = 'javascript'>
    function setBtnClickEnt{
        if(rtnStr != ""){
            eval(rntStr);
        }
    }
    </script>
    不管你是ALERT还是Confirm,什么乱七八糟,只要把控件名称传给后台,任意事件可以绑定。恩。。怕报错就加TRY
      

  22.   

    我的IE火狐都不行啊,代码和没有一个样啊,是不是哪里错了啊<script src="jquery.js"></script>
    <script type="text/javascript">
    <!--
        $("#btn").attachEvent("onclick",fun);
        function fun() {
            alert(2);
        }
    //-->
    </script><input type="button" value="onclick" onclick="alert(1)" id="btn">
      

  23.   

    <input type="button" id="b1"> <script> 
    b1.onclick=function() 

        xxxxxx 

    </script>
      

  24.   

    这里是我写的动态添加事件的脚本
        <script language="javascript" type="text/javascript" defer="defer">
    // <!CDATA[        function FunctionDiver(obj) {
                debugger;
                this.a = obj;
                var accinfo = this.a.innerText;
                var accRUL = this.a.href;
                AddEvent(this.a, "onclick", function() {
                    TrackAccessFunction(accinfo, accRUL)
                });        }
            
            function TrackAccessFunction(accinfo, accRUL) {
                alert(accinfo);
            }        function AddEvent(element, eventName, funCall) {
                if (element.attachEvent) {
                    element.attachEvent(eventName, funCall)
                }
                else {
                    element.addEventListener(eventName, funCall, false);
                }
            }       AddEvent(window, "onload", AddTrackAccessEvent);        function AddTrackAccessEvent() {            var alinks = document.getElementById("SiteNavigationTable").getElementsByTagName("a");            for (var i = 0; i < alinks.length; i++) {
                   var functionDiver = new FunctionDiver(alinks[i]);
                }
            }       // ]]>
        </script>
        <table id="SiteNavigationTable">
            <tr>
                <td>
                    <button>dadada</button>
                    <a href="#">1</a>
                </td>
                <td>
                    <a href="#">2</a>
                </td>
            </tr>
            <tr>
                <td>
                    <a href="#">3</a>
                </td>
                <td>
                    <a href="#">4</a>
                </td>
            </tr>
        </table>
      

  25.   

    关键在attachEvent 这个函数上