21

jQuery(或纯 JavaScript)中增加输入字段值的最短方法是什么?

例如

<input id="counter" type="hidden" name="counter" value="1">

所以它变为

<input id="counter" type="hidden" name="counter" value="2">
4

5 回答 5

38
$('#counter').val( function(i, oldval) {
    return parseInt( oldval, 10) + 1;
});

演示

或者

$('#counter').val( function(i, oldval) {
    return ++oldval;
});

演示

您可以将上述任何代码包装在一个函数中并调用它以进一步增加。例如:

function increment() {
    $('#counter').val( function(i, oldval) {
        return ++oldval;
    });
}

现在increment()在您需要的时间和地点拨打电话。

于 2012-07-18T16:45:27.133 回答
20

我认为最短的方法是:

$('#counter').get(0).value++ 

或者

$('#counter').get(0).value--
于 2014-01-03T23:53:41.610 回答
11

尝试这个:

var $input = $('#counter');

$input.val( +$input.val() + 1 );​

演示

于 2012-07-18T16:39:41.627 回答
7

这里不需要 jQuery,而是使用纯 JavaScript:

document.getElementById('counter').value++;

演示:http: //jsfiddle.net/RDMPq/

您可以将增量移动到接受动态 ID 的函数以提高可移植性:

function incrementInput(id){
    document.getElementById(id).value++;
}

演示:http: //jsfiddle.net/uyuGY/

于 2012-07-18T16:59:57.417 回答
1

你可以试试这个:

jQuery:

设置一个函数来执行此操作:

function incrementVal(selector) {
var $item = selector;
var $curVal = $item.attr("value");
$item.attr("value", parseInt($curVal) + 1 );
}

只需单击一个按钮即可使用它:

$("#increment").on("click",function() {
incrementVal($('#counter'));
});

您的 HTML:

<input id="counter" type="hidden" name="counter" value="1">
<button id="increment">Increment field</button>

希望有帮助。

于 2012-07-18T16:52:05.450 回答