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 に答える