Jquery 输入值未正确更新

Jquery input value not update properly

本文关键字:更新 输入 Jquery      更新时间:2023-09-26

我有这个html代码。我需要更新值="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。

但是我需要数学加法(lastvalue+3),例如 0369 等,而不是 03、033、0333 等。

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

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

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

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

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

数量 + 3

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

注意:将数字添加到字符串会将其转换为字符串,然后将其与字符串连接

 "hello" + 3 => "hello3"
 "6" + 3  => "63"

另一种解决方案是:

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

这个怎么样?

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

.val() 返回一个需要转换为整数的字符串