Javascript 如何在输入文本字段中添加或增加数值?

Javascript 如何在输入文本字段中添加或增加数值?,javascript,jquery,html,Javascript,Jquery,Html,我正在使用这个jquery计算插件: 我用的是求和的例子 在我的版本中,我将动态地将值插入字段并重新计算,所有这些都可以正常工作,但到目前为止,我只是将新值插入到空字段中 现在,在一个单独的操作中,我想增加一个字段的值,该字段先前已被值填充,然后再次重新计算 我把我要做的事弄得一团糟 有一个选项下拉列表。每个选项都有一个数值 现在作为一个例子,让我们随机选取一个字段。假设第三个字段中有数字1 当我选择一个下拉值时,我希望第三个字段中的数字1增加那么多,然后总和框也应该增加那么多 在javascr

我正在使用这个jquery计算插件:

我用的是求和的例子

在我的版本中,我将动态地将值插入字段并重新计算,所有这些都可以正常工作,但到目前为止,我只是将新值插入到空字段中

现在,在一个单独的操作中,我想增加一个字段的值,该字段先前已被值填充,然后再次重新计算

我把我要做的事弄得一团糟

有一个选项下拉列表。每个选项都有一个数值

现在作为一个例子,让我们随机选取一个字段。假设第三个字段中有数字1

当我选择一个下拉值时,我希望第三个字段中的数字1增加那么多,然后总和框也应该增加那么多

在javascript中,我开始监听下拉框中的一个更改,但是我应该在其中插入什么呢

也许我可以像这样获取所选值:

$('#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();