Eingabefeldwert mit jQuery erhöhen

Lesezeit: 2 Minuten

Benutzeravatar von Mahoni
Mahoni

Was ist der kürzeste Weg in jQuery (oder reinem JavaScript), um den Wert eines Eingabefelds zu erhöhen?

Zum Beispiel

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

so ändert es sich zu

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

Benutzeravatar von thecodeparadox
das Codeparadox

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

Demo

ODER

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

Demo

Sie können jeden der obigen Codes in eine Funktion einschließen und diese für weitere Inkremente aufrufen. Zum Beispiel:

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

Ruf jetzt an increment() wann und wo Sie es brauchen.

Ich denke, der kürzeste Weg ist:

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

oder

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

Versuche dies:

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

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

DEMO

  • Würden Sie vorschlagen, Ihren Selektor zu verwenden $("#counter"), wenn ja, warum? Sie müssen also keine zusätzliche ID zuweisen?

    – Mahoni

    18. Juli 2012 um 16:41 Uhr


  • Was ist der Zweck des + in ‘+$input.val()’?

    – Nathan

    18. Juli 2012 um 16:41 Uhr

  • @Mahoni Ich habe nicht gesehen, dass es ein ID-Attribut gibt, ich habe die Antwort aktualisiert

    – qwertymk

    18. Juli 2012 um 16:41 Uhr


  • @NathanReed, damit es nicht denkt, dass ich es tun möchte "1" + 1 was sein wird 11 und wandelt es stattdessen zuerst in eine Zahl um

    – qwertymk

    18. Juli 2012 um 16:42 Uhr

Benutzeravatar von Robert
Robert

Keine Notwendigkeit für jQuery hier, verwenden Sie stattdessen reines JavaScript:

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

Demo: http://jsfiddle.net/RDMPq/

Sie können das Inkrement in eine Funktion verschieben, die dynamische IDs für eine verbesserte Portabilität akzeptiert:

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

Demo: http://jsfiddle.net/uyuGY/

Benutzeravatar von Michael Giovanni Pumo
Michael Giovanni Pumo

Sie könnten dies versuchen:

jQuery:

Richten Sie dazu eine Funktion ein:

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

Verwenden Sie es mit einem Klick auf eine Schaltfläche:

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

Ihr HTML:

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

Hoffentlich hilft das.

1446360cookie-checkEingabefeldwert mit jQuery erhöhen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy