Javascript 如何在输入文本字段中添加或增加数值?
我正在使用这个jquery计算插件: 我用的是求和的例子 在我的版本中,我将动态地将值插入字段并重新计算,所有这些都可以正常工作,但到目前为止,我只是将新值插入到空字段中 现在,在一个单独的操作中,我想增加一个字段的值,该字段先前已被值填充,然后再次重新计算 我把我要做的事弄得一团糟 有一个选项下拉列表。每个选项都有一个数值 现在作为一个例子,让我们随机选取一个字段。假设第三个字段中有数字1 当我选择一个下拉值时,我希望第三个字段中的数字1增加那么多,然后总和框也应该增加那么多 在javascript中,我开始监听下拉框中的一个更改,但是我应该在其中插入什么呢 也许我可以像这样获取所选值:Javascript 如何在输入文本字段中添加或增加数值?,javascript,jquery,html,Javascript,Jquery,Html,我正在使用这个jquery计算插件: 我用的是求和的例子 在我的版本中,我将动态地将值插入字段并重新计算,所有这些都可以正常工作,但到目前为止,我只是将新值插入到空字段中 现在,在一个单独的操作中,我想增加一个字段的值,该字段先前已被值填充,然后再次重新计算 我把我要做的事弄得一团糟 有一个选项下拉列表。每个选项都有一个数值 现在作为一个例子,让我们随机选取一个字段。假设第三个字段中有数字1 当我选择一个下拉值时,我希望第三个字段中的数字1增加那么多,然后总和框也应该增加那么多 在javascr
$('#numbers').val();
但是,如何将其添加到另一个字段
更新:
如何修复此新版本
我想要两个不同的字段为另一个字段添加值
如果下拉列表1本身将2添加到第三个输入文本框中,则第三个输入文本框应变为3
如果下拉列表2本身将2添加到第三个输入文本框中,则第三个输入文本框应变为3
如果在两个下拉列表中都选择了2,则应将4添加到第三个输入文本框中,并变为5
如果下拉列表1或下拉列表2被重置,意味着选择了“拾取一”,则第三个输入文本框应减去2,使其为3
正如您在我的示例中所看到的,只有一个下拉列表添加到字段中。可以是或,但不能两者都是。我希望两者都能够添加到它,并从它带走时,默认选择一个被选中
$('#otherField').val(Number($('#numbers').val())+1);
更新
HTML
拨弄
只需这样做:
// On selected option change...
$("#numbers").change(function() {
var
// Get the selected value as an integer
value = +$(this).val(),
// Get the third input field
$thirdInput = $('input[name^="sum"]:nth-child(3)')
;
// Increase the third input field's value by the selected option value
$thirdInput.val(+$thirdInput.val() + value);
// Recalculate the sum
$("input[name^=sum]").sum("keyup", "#totalSum");
});
这里我们使用a将输入值和下拉列表转换为整数
编辑:评论中提出的进一步要求:
如果下拉列表从一个编号的值更改为“拾取一个”选项,我需要将添加内容收回并返回到它以前的状态
为此,我们可以声明一个新的全局变量,该变量设置为第三个文本字段的初始值:
var thirdSumValue = 1;
然后在下拉菜单的更改事件中使用此选项:
或者,不必硬编码其默认值,只需将其设置为加载时文本字段的值:
var thirdSumValue = +$('input[name^="sum"]:nth-child(3)').val();
这将反映加载JavaScript之前的任何默认HTML值
.你知道$'numbers'.val123;对吧?这是我尝试的第一件事,它成功了。谢谢示例:@leoarce如果此答案解决了您的问题,请将其标记为已接受。此外,还要投票选出有帮助的答案。谢谢,第二个例子是做什么的?同样的,它只是从另一个字段中添加一个数字,而不是1@leoarce你根本不需要修改你的HTML,你的问题也没有具体说明你可以这样做。如果是这样的话,以后提问时请提及所有细节。嗯。前面的例子是操纵多个字段,这不是我试图做的,但它似乎是固定的。也许你是对的,这个添加方法比另一个连接方法好。进一步的测试表明这不是我想要做的。如果下拉列表从一个编号的值更改为“拾取一个”选项,我需要将添加内容收回并返回到它以前的状态。另一个答案似乎就是这样。@leoarce在这种情况下,您只需要保存初始值。为此,我在JavaScript代码顶部创建了一个新变量thirdSumValue,该变量设置为1。这将在更改事件中使用:因为此应用程序将增长,所以不确定返回到设置值是否有效。例如,如果我添加另一个带有其他值的下拉列表,我希望第二个下拉列表也添加到同一字段中。现在,如果从第一个下拉列表中选择2,使第三个字段变为3,那么在第二个下拉列表中再次选择2,第三个字段应该从3变为5,但是如果第二个下拉列表变为默认的“选择一”选项,那么第三个字段应该变回3,而不是1。@leoarce在JSFIDLE中只有一个下拉列表。
var thirdSumValue = 1;
$thirdInput.val(thirdSumValue + value);
var thirdSumValue = +$('input[name^="sum"]:nth-child(3)').val();