本帖最后由 rekung 于 2012-07-12 20:33:38 编辑

解决方案 »

  1.   

    找到一个方法,直接Js修改函数里面的字符串,插入字符串,不知道还有其他方法实现么!  <script> 
       function  checkform(oForm){ 
           if (oForm.A.value== ""){ 
             alert('A is Null'); 
     return false; 
           } 
       } 
     </script>  <form  name="myform"   action=" "  method=post onsubmit="return checkform(this) "   > 
       输入A: <input tyle='text' name='A' value=''>       
       
       <!--本段是作为插件放进来的,可能开启,或者关闭--> 
       <!--插入开始--> 
       输入B: <input id="plus" tyle='text' name="plus" value=""> 
       <script> 
    eval(checkform.toString().substring(0, checkform.toString().lastIndexOf("}")) + " if (oForm.plus.value=='') {alert('plus is Null'); return false;}}");         //我需要在这里写一段js   修改继承和重载checkform()函数,使之能够验证plus不为空    </script> 
       <!--插入结束--> 
       <input type="submit">
      

  2.   

    function plus(oForm,fn){
        if(typof fn =="function"){
          if(false===fn(oForm)) return false;
        }
        if (oForm.plus.value=='') {alert('plus is Null'); return false;}
    }
    plus(oForm,checkform)
      

  3.   

    彻底无语...
    把代码转化为字符串,然后又用eval解析为代码,这和直接写代码有什么区别
    你写的第二段代码等于:
     function checkform(oForm){
       if (oForm.A.value==""){
        alert('A is Null');
        return false;
       }
       if (oForm.plus.value=='') {alert('plus is Null'); return false;}
     }
    //这是你后面添加的字符串转化为的代码,被重新赋值后的函数多了一个返回false的条件你这短代码根本跟什么继承重载一点关系都没,只是把变量checkform重新赋值罢了...
    你可以用这段代码代替eval句,看看效果是不是一样...
      

  4.   

    回楼上:
    我当然知道2楼这个不是继承,覆盖方法.
    另外因为不能够直接编辑这个:function checkform(oForm) 函数
    一个朋友的思路,暂时是需要达到了效果
    继续寻找更好的答案.