gpt4 book ai didi

javascript - 使用 jQuery 事件跟踪多个变量时使用当前变量

转载 作者:行者123 更新时间:2023-12-03 05:23:13 25 4
gpt4 key购买 nike

下面您将找到我正在使用的代码以及我想要完成的任务的简化示例。
我正在使用 jQuery 跟踪需要在特定事件上调用函数的多个变量。问题是我无法仅使用刚刚更改的变量。

在 HTML 正文部分中,我有几个输入字段,人们可以在其中填写数字。该数字的格式应使用逗号作为千位分隔符。感谢 Elias Zamaria 我找到了一个很好的解决方案( https://stackoverflow.com/a/2901298/7327579 )。现在我希望用 jQuery 来实现它,这样我就可以跟踪所有可以立即获取数字输入的变量。

<html>
<title></title>
<head>

在 html 的头部,我插入脚本来跟踪我的变量:

    <script language="javascript">
var Currency = function() {
this.currencyType = $("#businessAuthorisation, #businessIncome, #entityIncome, #entityAuthorisation);

格式化数字的函数应该只从正在更改的当前变量获取当前数字:

          this.formatCurrency = function(x) {
var parts = x.toString().split(".");
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
return parts.join(".");
};
};

跟踪开始,并且在 keyUp 事件上调用我的函数。只有当前变量才应该是被调用函数的参数。

      $(document).ready(function() {
var currency = new Currency();
currency.currencyType.keyup(function() {
currency.formatCurrency(this);
});
});
</script>
</head>

以下是我的表单中相关的输入字段:

  <body>
<form>
<table>
<tr>
<td><input type="number" name="entityAuthorisation" id="entityAuthorisation" value="<%=entityAuthorisation%>></td>
</tr>
<tr>
<td><input type="number" name="businessAuthorisation" id="businessAuthorisation" value="<%=businessAuthorisation%>"></td>
</tr>
<tr>
<td><input type="number" name="entityIncome" id="entityIncome" value="<%=entityIncome%>"></td>
</tr>
<tr>
<td><input type="number" name="businessIncome" id="businessIncome" value="<%=businessIncome%>"></td>
</tr>
</table>
</form>
</body>
</html>

如何确保该函数仅适用于引发事件的当前元素?

最佳答案

在 jQuery 事件处理程序中,this 指的是触发事件的元素。并且您需要使用 .value 来获取输入的值。所以你应该写:

  $(document).ready(function() {
var currency = new Currency();
currency.currencyType.keyup(function() {
this.value = currency.formatCurrency(this.value);
});
});

关于javascript - 使用 jQuery 事件跟踪多个变量时使用当前变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41278604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com