javascript - 如何添加两个有用户输入的变量?

标签 javascript html

目前,我正在尝试编写一个网站,当您输入两个变量时,它们会自行添加在一起。这是我的代码:

    function master_wood() {
        var Stone = document.getElementById("Stone").value;
        var Wood = document.getElementById("Wood").value;
        alert('This much wood: ' +  Wood);
        var Resources = +Stone.value + +Wood.value;
    }
    function master_stone() {
        var Stone = document.getElementById("Stone").value;
        var Wood = document.getElementById("Wood").value;
        alert('This much stone: ' + Stone);
        var Resources = +Stone.value + +Wood.value;
        alert(Resources);
    
    }
 <table>
  <tr>
	 <td><input type="text" name="stone" id="Stone"></td>
     <td><button onclick="master_stone()">Set stone in world</button></td>
     </tr>
     <br>
     <tr>
	 <td><input type="text" name="wood" id="Wood"></td>
      <td><button onclick="master_wood()">Set Wood in world</button>    </td>
     </tr>
 </table>

有什么想法吗?

最佳答案

您将 var Stone 指定为输入值,然后您尝试添加未定义的 stone.value,因为您直接指定了 stone 输入的值。

接下来,您需要将文本值解析为整数,因为如果您尝试将它们按原样添加在一起,您将得到一个串联的值字符串,例如“3020”而不是 50(如果您有 20 个木头,30 个木头)石头)。

您的脚本应如下所示:

<tr>
     <td><input type="text" name="stone" id="Stone"></td>
     <td><button onclick="master_stone()">Set stone in world</button></td>
     </tr>
     <br>
     <tr>
     <td><input type="text" name="wood" id="Wood"></td>
      <td><button onclick="master_wood()">Set Wood in world</button></td>
</tr>
     
<script>
 function master_wood() {
    var Stone = document.getElementById("Stone");
    var Wood = document.getElementById("Wood");
    alert('This much wood: ' +  Wood.value);
    var Resources = (parseInt(Stone.value) || 0) + (parseInt(Wood.value) || 0);
    alert('Total resources:' + Resources);
}
function master_stone() {
    var Stone = document.getElementById("Stone");
    var Wood = document.getElementById("Wood");
    alert('This much stone: ' + Stone.value);
    var Resources = (parseInt(Stone.value) || 0) + (parseInt(Wood.value) || 0);
    alert('Total resources:' + Resources);

}
</script>

(parseInt(Stone.value) || 0) 部分确保您尝试添加的值存在,以避免添加未定义的 + 值,从而导致 NaN。这样,如果不存在,则添加 0,从而消除不需要的结果。

关于javascript - 如何添加两个有用户输入的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43975028/

相关文章:

JavaScript while循环计算

javascript - Ajax jquery 与 Post 类形式

javascript - Vue.js 组件中的渲染组件

php - 颜色的 CSS 内联样式不适用于 Laravel 4.2 中电子邮件模板中的文本

javascript - HTML 对齐和 javascript 问题

html - html 标题总是必须从 1 开始计数吗?

javascript - 动态创建变量

javascript - 我无法用我的函数隐藏 jquery 自动完成功能

html - CSS 左 : -50% causing IE7 to ignore width

jquery - 选中复选框时将类添加到表