一个朋友问我,为什么我写这个简单的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就没有必要去定义.对系统不会有影响的.
本博客均为原创,转载请注明出处.