• 一个很诡异的javascript问题


    一个朋友问我,为什么我写这个简单的html文件,点增加老是出错呢?

    Html文件如下

    <html>
    <body>
    <script. language="javascript">
    function add(){
      var form=document.forms[0];
      form.method.value='add';
     alert(1);
    }
    
    function update(vl){
      var form=document.forms[0];
      form.method.value='update';
      form.sysid.value=vl;
      alert(2);
    }
    
    </script>
    <form. name="Cgd_BillForm" method="post" action="/sample/view/billMaster.do">
    <input type="hidden" name="method" value="">
    <input type="hidden" name="sysid" value="">
    
        
     <table>
         <tr>采购请购单</tr>
         <tr>
             <td>
             <input type="button" name="add" value="增加" nclick="javascript.:add()"/>
             </td>
         </tr>
      <tr>
       <td><b>单据编号</b></td>
       <td align="center"><b>单据日期</b></td>
       <td><b>金额</b></td>
       <td colspan="2"><b>编辑</b></td>
       
      </tr>
      
       <tr>
           
        <td><b>001</b></td>
        <td><b>2008-01-23 19:24:22.0</b></td>
        <td><b>2000.0</b></td>
        <td><input type="button" name="update" value="修改" nclick="javascript.:update('ff80808117a664370117a6643ec50001')">
                    <td><input type="button" name="delete" value="删除" nclick="javascript.:delete('ff80808117a664370117a6643ec50001')">
       </tr>
      
     </table>
    </form>
    </body>
    </html>
    
    

     

       咋一看,这个html文件应该没有任何问题.是的..这个错误很难好现,就算你不停的用alert去试,也是有困难的.大家知道,Javascript

    是一个解释性的编程语言,它是一个绝对的面象对象的语言,另何变量,函数,方法,都是一个对象.它又是弱变量型的,有时候给编程带来

    或多或少的困难.上面的html错误在于,定义了两个相同的全局变量,比如:add这个标识在script区域中定义过,然后又在button中定义

    过..最后起作用的只有button,所以当你调用add方法时,系统当然报错.嘿,问题很诡异吧..以后做事,还是小心再小心,有时候不

    要画蛇添足,比如上面的button的name就没有必要去定义.对系统不会有影响的.

    本博客均为原创,转载请注明出处.
  • 相关阅读:
    一段关于生成器代码的解读
    (十三)内置函数
    (十二)生成器和生成器函数,推导式和表达式
    (十一)函数名的使用,闭包,迭代器
    (十)函数的动态传参,作用域
    (九)函数
    (八)文件操作
    (七)深浅拷贝
    (六)id(),is和==,内存常量
    (五)字典,集合
  • 原文地址:https://www.cnblogs.com/mzhanker/p/2082212.html
Copyright © 2020-2023  润新知