从输入中删除最后一个字符

我如何从JQuery中的输入中删除最后一个字符? 例如, onclick of something,它会从输入字段中删除最后一个字符(在我的例子中为逗号)。

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

如果你想砍掉任何最后一个字符(不仅仅是逗号,空格),你可以使用slice

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

您可以将它与$.trim()结合使用以删除多余的空格:

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

以下作品,虽然它可能有点笨重:

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

JS小提琴演示 。

修改演示,在截断字符串之前检查最后一个字符是否为字符:

 $('#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小提琴演示 。

这两行将从特定输入中删除尾随逗号。 我将由您决定何时需要运行(在更改/按钮点击等)。

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

如果您还想在最后删除任何可能的空格,请将正则表达式更改为:

 /\s*,\s*$/