<input id='inpa' type='number' value=1>
JS
var inp = $('#inpa').val();
$('#btnext').click(function(){
$('#inpa').val(inp + 1);
$('#inpa').val(inp += 1); // also tried
});
在两种情况下结果都是11
!
如何获得2
?
答案 0 :(得分:1)
你必须先将它们解析为数字:
var a = parseInt($('#inpa').val(), 10);
答案 1 :(得分:1)
HTML输入的值始终是字符串。您需要将数字“解析”为整数。
parseint(inp)
将理解inp
作为整数的任何内容,您现在可以从中获取+1和-1。
设置标记的值时,它会将其更改回字符串。
答案 2 :(得分:1)
您必须使用Number
或parseInt
$('#btnext').click(function() {
var inp = Number( $('#inpa').val() ); /* Need to be inside the function, so that will get the updated value every user click*/
$('#inpa').val(inp + 1);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id='inpa' type='number' value=1>
<input type="button" id="btnext" value="btnext">
答案 3 :(得分:1)
您的代码连接字符串。
您需要通过在每个变量周围调用parseFloat()将每个变量转换为数字。
$('#btnext').click(function(){
var inp = $('#inpa').val();
$('#inpa').val(parseInt(inp) + 1);
// $('#inpa').val(inp += 1); // also tried
});