2011-07-31 29 views

Respuesta

40
$(input).val(
    function(index, value){ 
     return value.substr(0, value.length - 1); 
}) 
+0

gracias por la respuesta, es excelente y fácil – BNN

5

las siguientes obras, aunque es quizás un poco torpe:

$('#idOfButtonToClick').click(
    function(){ 
     var inputString = $('#idOfInput').val(); 
     var shortenedString = inputString.substr(0,(inputString.length -1)); 
     $('#idOfInput').val(shortenedString); 
    }); 

JS Fiddle demo.

demostración revisado, que comprueba si el último carácter es un carácter , antes de truncar la cadena:

$('#idOfButtonToClick').click(
    function(){ 
     var inputString = $('#idOfInput').val(); 
     if (inputString.charAt(inputString.length - 1) == ',') { 
      var shortenedString = inputString.substr(0,(inputString.length -1)); 
     $('#idOfInput').val(shortenedString); 
     } 
     return false; 
    }); 

JS Fiddle demo.

+0

+1 para responder a lo que se solicita, pero se puede optimizar fácilmente usando un solo '$ (" # idOfInput ")' y utilizando una función en 'val() '. Forked: http://jsfiddle.net/gWMDT/1/ – Yahel

4

Estas dos líneas eliminarán una coma final de una entrada en particular. Dejaré que usted decida cuándo se debe ejecutar (al hacer clic en el botón de cambio/encendido, etc.).

var $theInput = $('#myInput'); 
$theInput.val($theInput.val().replace(/,$/, '')); 

Si también quiere deshacerse de cualquier posible espacio en blanco al final, cambie la expresión regular a esto:

/\s*,\s*$/ 
+0

muchas gracias por esta respuesta. –

7

Si desea cortar de cualquier último carácter (no sólo coma, un espacio), puede utilizar slice:

var $myInput = $('#myInput'); 
$myInput.val($myInput.val().slice(0, -1)); 

se puede combinar con $.trim() para eliminar los espacios extra:

$myInput.val($.trim($myInput.val()).slice(0, -1)); 
Cuestiones relacionadas