【问题标题】:jQuery: changed input value is not used for new additionjQuery:更改的输入值不用于新增功能
【发布时间】:2015-03-27 12:15:57
【问题描述】:

我有一个隐藏的输入字段,其值为 0:

<input type="hidden" class="test" value="0" />

现在我添加了一个带有一些 JS 的按钮,以在每次单击按钮时将值加 0.5:

<a class="addition-input">Click me</a>

这里是JS部分:

$('a.addition-input').click(function(event) {
     event.preventDefault();
     var currentValue = parseInt($('input.test').val());
     var step         = 0.5;
     var newValue     = currentValue + step;

     $('input.test').val(newValue);
});

所以,我第一次单击链接/按钮时,值从“0”变为“0.5”。 但是,当我第二次点击链接/按钮时,它不会改变,它只是保持“0.5”。

我认为jQuery没有通过第二次点击获得新的输入值,它可能认为该值为“0”。

我该如何解决这个问题?

更新:

这是小提琴:https://jsfiddle.net/m7pvjrve/1/

【问题讨论】:

  • .5 不是整数。

标签: javascript jquery input addition


【解决方案1】:

使用

var currentValue = parseFloat($('input.test').val());

而不是

var currentValue = parseInt($('input.test').val());

parseInt() 每次都将0.5 转换为0,得到的值是0.5,实际上是step

演示:http://jsfiddle.net/GCu2D/657/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多