JavaScript 计算器不断将计算结果与输入的第一个数字连接起来进行下一次计算

2023-12-12

<body>
<FORM NAME="Calculator">
<TABLE BORDER=4>
<TR>
<TD>
<input type="text"   name="Input" Size="22" value="">


<br>
</TD>
</TR>
<TR>
<TD>
<INPUT TYPE="button" NAME="one"   VALUE="1" class ="digit" >
<INPUT TYPE="button" NAME="two"   VALUE="2" class ="digit" >
<INPUT TYPE="button" NAME="three" VALUE="3" class ="digit" >
<INPUT TYPE="button" NAME="plus"  VALUE="+" class ="operand">
<br>
<INPUT TYPE="button" NAME="four"  VALUE="4" class ="digit">
<INPUT TYPE="button" NAME="five"  VALUE="5" class ="digit">
<INPUT TYPE="button" NAME="six"   VALUE="6" class ="digit">
<INPUT TYPE="button" NAME="minus" VALUE="-" class="operand">
<br>
<INPUT TYPE="button" NAME="seven" VALUE="7" class ="digit">
<INPUT TYPE="button" NAME="eight" VALUE="8" class ="digit">
<INPUT TYPE="button" NAME="nine"  VALUE="9" class ="digit">
<INPUT TYPE="button" NAME="times" VALUE="*" class ="operand">
<br>
<INPUT TYPE="button" NAME="clear" VALUE="c" class ="special">
<INPUT TYPE="button" NAME="zero"  VALUE="0" class ="digit">
<INPUT TYPE="button" NAME="Execute"  VALUE="=" class ="solve">
<INPUT TYPE="button" NAME="div"   VALUE="/" class ="operand">
<br>
</TD>
</TR>
</TABLE>
</FORM>

<script type = "text/javascript" src="C:\Users\Quonn\Desktop\QBJS\calculatorjs.js">
</script>
</body>

我正在构建一个可配置的计算器,但我有一些符合我的逻辑/让它完全按照我想要的方式运行。我有两个问题。

问题#1:我怎样才能改变我的逻辑,以便我可以取代“邪恶的评估”?

var timer;
document.onclick = function(x) {
var info = x.target;
clearTimeout(timer);
 timer= setTimeout(function(){addDigit(x);},200);
}

问题2:如何更改此函数中的逻辑,以便在显示计算结果后,为下一个计算输入的第一个数字不只是连接到上一个计算的结果?

function addDigit(x){
if (x.target.className === "digit" || x.target.className ==="operand") {
    document.Calculator.Input.value += "" + x.target.value;
}

else if (x.target.className === "solve") {
    result = eval(document.Calculator.Input.value);
    document.Calculator.Input.value = result;
}
else  {
   document.Calculator.Input.value = "";
}

}

您正在连接字符串。你应该看看parseInt / 解析浮点型;注意基数,否则 JavaScript 会尝试猜测它......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 计算器不断将计算结果与输入的第一个数字连接起来进行下一次计算 的相关文章

随机推荐

  • Expression Blend 和 Visual Studio Render WPF 控件是否不同

    在我的 WPF 应用程序中 我使用 Expression Blend 设计了表单 令我惊讶的是 当我使用 Visual Studio 2008 加载解决方案时 渲染效果非常不同 更令人惊讶的是 当我运行应用程序时 生成的 UI 与 VS 和
  • 在gridview中隐藏分页号码?

    我试图隐藏显示在网格视图底部的网格视图上的分页号码 我使用下拉列表而不是这个点击次数 我怎样才能隐藏它们 请指教 根据MSDN 就这么简单 GridView PagerSettings Visible false
  • 为什么java中整数除法? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 据我了解 在Java中 如果我将两个整数相除 如果结果不是整数 则小数部分将被截断 并且我会从除法中得到整数结果 这对我来说毫无意义 我想知道我是否可以深入了解为什么 Java 是这样设计
  • 使用opencv和python抓取帧时如何保持恒定的FPS?

    我使用 OpenCV4 和 python 3 打开网络摄像头 抓取帧并将其显示在窗口中 就像提供的第一个代码教程一样here 然而 抓取不同的帧需要不同的时间 有时抓取需要 0 01 秒 有时需要 0 33 秒 这在窗口中显示帧时会产生滞后
  • Excel 互操作 - 如何停止“评估”数字(存储为文本)

    我想知道是否有人遇到过以下问题并对如何解决它有任何想法 我正在通过 Interop 将数据从 C 应用程序 NET 3 5 导出到 Excel 2003 其中一列存储一个看似数字的字符串值 也就是说它是一个以 0 开头的数字 例如00012
  • 在页面之间传递状态?

    我有一个包含两个页面的 Silverlight Windows Phone 7 应用程序 我想在它们之间传递一些重要的状态 数组或结构 我是否必须遵循将所有内容都打包到查询字符串中的 Web 模型 当所有页面和类都位于同一设备上 同一进程和
  • 简单的拖动物理原理,向左或向右移动时表现不同[重复]

    这个问题在这里已经有答案了 我的代码对于负速度的表现与对于正速度的表现不同 我正在尝试实现平台物理 玩家在 X 方向上有速度 当用户分别按下 A 或 D 时速度会增加或减少 或者当玩家与墙壁碰撞时设置为 0 为了模拟与地面的摩擦力 玩家的
  • 使用 Google Drive API 下载文件夹

    我在 Google Drive 上有一些数据 组织在文件夹中 我想将它们传播到其他服务器上 我有一些用于传播的脚本 但我需要从谷歌驱动器下载数据 有没有一种通过 Google Drive API 下载文件夹的方法 同时还能维护整个文件夹结构
  • 多个 WindowsBaloonTip / TrayTip 通知?

    如果您要使用下面的代码在通知区域中创建 TrayTips BaloonTips 您会注意到它只允许一条消息 然后会卡住并出错 代码取自here coding utf 8 from win32api import from win32gui
  • 我可以将字符串文字映射到类型的类型吗?

    我有一个字符串文字类型 例如 type ConfigurationTypes test mock 和一些类型 type MockType id string type TestType code string 我想创建一个将字符串文字 映射
  • 用于提取 Youtube 视频 ID 的 JavaScript 正则表达式

    以下代码用于获取 Youtube 视频 ID 以便获取缩略图 第一个正则表达式背后的原因是什么 它到底在做什么 它似乎返回至少两个结果 另外 两者可以结合起来吗 else if url match youtube com var vid v
  • Kubernetes Ingress + Apache 气流

    你能帮我么 我正在尝试在 vpc 中的 Kubernetes AWS 中启动 Apache Airflow 我正在使用 helm stable airflow 7 1 1 一切开始都好 但要访问 Web 界面 我需要通过入口 ELB 公开它
  • 如何将android模拟器连接到互联网

    如何将我的 Android 模拟器连接到互联网 例如使用浏览器 我找到了很多关于通过代理连接时该怎么做的建议 但这里的情况并非如此 我的机器 Windows 7 直接连接到路由器 我认为有些答案可能已经解决了这个问题 无论多么间接 但这对我
  • 在 Jenkins 中断开节点连接的编程方式是什么?

    我想通过使用 Jenkins API 的脚本来完成相当于手动单击 Jenkins 节点管理页面上的 断开连接 链接的操作 我想将此代码添加到我使用管道脚本插件制作的脚本中 换句话说 作为具有 Jenkins 管理员权限的用户 执行 Mana
  • Flutter:获取 iOS 上过去的购买记录

    通过新的实现 一切都在 Android 上运行in app purchase https pub dev packages in app purchase 但在 iOS 上我无法获取过去的购买记录 按照文档我没有看到任何特别的东西 我的代码
  • 标准化或非标准化表的性能更高

    我目前正在开发一个 mvc 应用程序来从现有的 sql server 数据库中读取数据 数据库是非规范化的 我正在考虑修改一些表以将其规范化到一定程度 这引发了与一位开发人员的讨论 认为这是读取数据的最常见方式 或者结构是否应该改变 数据将
  • 错误:C++ 中不允许类型名称

    当我编译代码时 VC 返回一个错误 如上所述 受影响的线路是 brushes 5 6 214 0 13 0 更具体地说 这是受影响的代码块 const brushes palette brushes 5 6 214 0 13 0 brush
  • 检测页面是否有垂直滚动条?

    我只是想要一些简单的 JQ JS 来检查当前页面 窗口 不是特定元素 是否有垂直滚动条 谷歌搜索给我的东西对于这个基本功能来说似乎过于复杂 如何才能做到这一点 document ready function Check if body he
  • 如何更改 CMakeLists.txt 查找 Boost 库的位置 Ubuntu

    我使用的是 Boost 1 54 0 它位于 usr include 中 我们放弃了这一点并安装了 Boost 1 57 0 它安装在 usr local include 中 现在 我使用 CMake 的 CLion 项目找不到 Boost
  • JavaScript 计算器不断将计算结果与输入的第一个数字连接起来进行下一次计算