Mahoní
Cuál es el más corto forma en jQuery (o JavaScript puro) para incrementar el valor de un campo de entrada?
Por ejemplo
<input id="counter" type="hidden" name="counter" value="1">
por lo que cambia a
<input id="counter" type="hidden" name="counter" value="2">
laparadoja del código
$('#counter').val( function(i, oldval) {
return parseInt( oldval, 10) + 1;
});
O
$('#counter').val( function(i, oldval) {
return ++oldval;
});
Puede envolver cualquiera de los códigos anteriores dentro de una función y llamarlo para un mayor incremento. Por ejemplo:
function increment() {
$('#counter').val( function(i, oldval) {
return ++oldval;
});
}
ahora llama increment()
cuando y donde necesites.
Creo que el camino más corto es:
$('#counter').get(0).value++
o
$('#counter').get(0).value--
-
¿Sugeriría usar su selector sobre
$("#counter")
, ¿si es así por qué? Entonces, ¿no tiene que asignar una identificación adicional?– Mahoní
18 de julio de 2012 a las 16:41
-
¿Cuál es el propósito del + en ‘+$input.val()’?
– Nathan
18 de julio de 2012 a las 16:41
-
@Mahoni No vi que había un atributo de identificación, actualicé la respuesta
– qwertymk
18 de julio de 2012 a las 16:41
-
@NathanReed para que no crea que quiero hacer
"1" + 1
Cuál podría ser11
y en su lugar primero lo convierte en un número– qwertymk
18 de julio de 2012 a las 16:42
Roberto
No hay necesidad de jQuery aquí, en su lugar use JavaScript puro:
document.getElementById('counter').value++;
Manifestación: http://jsfiddle.net/RDMPq/
Puede mover el incremento a una función que acepte identificaciones dinámicas para una mayor portabilidad:
function incrementInput(id){
document.getElementById(id).value++;
}
Manifestación: http://jsfiddle.net/uyuGY/
Michael Giovanni Pumo
Podrías intentar esto:
jQuery:
Configure una función para hacer esto:
function incrementVal(selector) {
var $item = selector;
var $curVal = $item.attr("value");
$item.attr("value", parseInt($curVal) + 1 );
}
Úselo con el clic de un botón:
$("#increment").on("click",function() {
incrementVal($('#counter'));
});
Su código HTML:
<input id="counter" type="hidden" name="counter" value="1">
<button id="increment">Increment field</button>
Espero que ayude.