为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我不能从onclick属性调用一个名为CLEAR的函数?

为什么我不能从onclick属性调用一个名为CLEAR的函数?

慕仙森 2019-06-21 13:26:30
为什么我不能从onclick属性调用一个名为CLEAR的函数?我试图创建一个简单的计算器,当单击一个按钮时,它的值显示在文本字段中,而按钮“C”应该清除文本字段,但是它的onClick=“CLEAR()”不工作吗?<%@page contentType="text/html" pageEncoding="UTF-8"%><!DOCTYPE html><html>     <head>         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">         <title>Calculator</title>         <style>             #button{                 padding: 10px;             }         </style>         <script>             function fill(val){                 document.getElementById("field").value+=val;             }             function clear(){                 document.getElementById("field").value="";             }         </script>     </head>     <body>         <form>         <table>             <tr><input type="text" name="field" id="field" size="8"/></tr>         <%! int k = 1; %>        <% for(int i=0;i<3;i++){ %>        <tr> <%             for(int j=0;j<3;j++){ %>            <td>             <input type="button" id="button" onclick="fill(this.value)" value="<%=k++%>" /></td>           <%  } %>        </tr>         <% } %>        <tr><!--here onclick="clear()" is not working?? -->             <td><input type="button" id="button" value="C" onclick="clear()"/></td>             <td><input type="button" id="button" value="0" onclick="fill(this.value)"</td>             <td><input type="submit" id="button" value="="</td>         </tr>         </table>         </form>     </body></html>
查看完整描述

2 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

内在事件属性(如onclick)是可怕的。在内部他们实施with:

不建议使用WITH语句,因为它可能是混淆bug和兼容性问题的根源。

因此,你实际上是在打电话document.clear()而不是你的全球clear().

快速修复方法是将函数重命名为其他函数或显式调用window.clear().

更好的解决方案是将事件处理程序绑定到addEventListener而不是内在的事件属性。


查看完整回答
反对 回复 2019-06-21
?
三国纷争

TA贡献1804条经验 获得超7个赞

您的HTML有问题,但是您的函数不能工作的原因是它的名称“CLEAR”,这个名称已经由document.CLEAR()定义。

将该函数的名称更改为类似Clearfield()的名称,它就会工作。


查看完整回答
反对 回复 2019-06-21
  • 2 回答
  • 0 关注
  • 532 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信