Jquery输入值未正确更新

时间:2014-12-14 12:41:31

标签: javascript php jquery

我有这个HTML代码。我需要更新value =" 0 "

<input id="loadmoreref" class="displynone" value="0" />

html按钮是

<button id="loadmorebutton">Load more</button>

我正在使用这个jquery代码

$(function(){
$('#loadmorebutton').click(function(){
var limstart = $("#loadmoreref").val();
$("#loadmoreref").val(limstart+3); //update value
alert(limstart );
});

当我第一次点击按钮时。提醒说 0 。当我再次点击它时, 03 同样 033 0333 等。

表示它在最后一个值之后加3。

但我需要数学加法(最后值+3),如 0 3 6 9 等等 03 033 0333 等。

4 个答案:

答案 0 :(得分:1)

您正在为数字添加字符串,首先使用parseInt()将字符串转换为数字。 $("#loadmoreref").val()将生成一个字符串。

$("#loadmoreref").val(parseInt(limstart,10)+3);

因此,为了您在JavaScript中的理解,将字符串添加到数字始终是一个字符串。

"0" + 3 = "03"
"03" + 3 = "033"
"003" + 3 = "0333"

答案 1 :(得分:1)

你应该将#loadmoreref的val转换为数字,然后使用它并进行乘法运算:

  

号码(limstart)+ 3

$("#loadmoreref").val(Number(limstart) + 3);

注意:在string中添加数字会将其强制转换为字符串,然后将其与字符串

连接起来
 "hello" + 3 => "hello3"
 "6" + 3  => "63"

答案 2 :(得分:0)

另一种解决方案是:

$("#loadmoreref").val((limstart * 1) +3); //update value

答案 3 :(得分:0)

这个怎么样?

$(function(){
$('#loadmorebutton').click(function(){
var limstart = parseInt($("#loadmoreref").val());
$("#loadmoreref").val(limstart+3); //update value
alert(limstart );
});

.val()返回需要转换为Integer的字符串