【问题标题】:how to keep adding to JS variable?如何继续添加到 JS 变量?
【发布时间】:2015-09-17 11:53:20
【问题描述】:

每次用户在框中输入值时,我都会尝试不断添加到 js 变量中。

到目前为止,如果他们输入“21”,警报将显示“您的余额为 12 英镑”,但如果我输入“15”,我希望它说您的余额为“27”,但它会显示“15”或更确切地说只是最新的金额。

以下代码:

<form action="" method="get">
  <input type="number" value="" id="amountDropped">
  <input type="submit" value="Deposit amount" onclick="depositedFunds()">
</form>

var firstAmount = 0;    
function depositedFunds(){

    var ad = document.getElementById("amountDropped");

    firstAmount = +firstAmount + +ad.value;
    alert ("Your balance is £" + firstAmount);
};

谢谢

【问题讨论】:

  • firstAmount += ad.value;

标签: javascript html variables


【解决方案1】:

进行更改的函数附在提交按钮上。

当用户点击按钮时:

  1. JS 运行
  2. 值已更新
  3. 值被提醒
  4. 表单已提交
  5. 新页面加载
  6. 新页面中有var firstAmount = 0;

你应该:

  • 使用服务器端代码动态设置默认值。见Unobtrusive JavaScript
  • 防止提交按钮的默认行为

使用 onclick 属性,您需要从事件处理函数中返回 false:

onclick="depositedFunds(); return false;"

现代代码将关注点分开,而不是将事物与触发表单提交的特定方式紧密联系在一起。

var firstAmount = 0;

function depositedFunds(e) {
  e.preventDefault();
  var ad = document.getElementById("amountDropped");
  firstAmount = +firstAmount + +ad.value;
  alert("Your balance is £" + firstAmount);
};

document.querySelector('form').addEventListener('submit', depositedFunds);
<form method="get">
  <input type="number" id="amountDropped">
  <input type="submit" value="Deposit amount">
</form>

【讨论】:

  • 非常有帮助,谢谢。只是想知道如何将变量保留在会话中?您的方法有效,但如果我关闭浏览器/注销等,它将重置为 0...
  • 我不会在会话中保留它。如果我需要在会话之间保留它,那么我会将它存储在服务器上的数据库中,并使用 auth/authz 将其与按需会话相关联。
猜你喜欢
  • 2018-12-08
  • 1970-01-01
  • 2014-08-27
  • 1970-01-01
  • 1970-01-01
  • 2021-09-08
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
相关资源
最近更新 更多