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

25
我该如何在 JQuery 中删除输入的最后一个字符?例如,通过点击某个元素的 onclick 事件,从输入框中删除最后一个字符(在我的情况下是逗号)。

7个回答

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

11

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

var $myInput = $('#myInput');
$myInput.val($myInput.val().slice(0, -1));
你可以与 $.trim() 结合使用来删除额外的空格:
$myInput.val($.trim($myInput.val()).slice(0, -1));

6

以下内容是可行的,尽管可能有点笨拙:

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

JS Fiddle演示

修改版演示,检查字符串被截断前的最后一个字符是否为,

$('#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.


+1 分,回答了问题,但是你可以通过使用单个 $("#idOfInput") 并在 val() 中使用函数来轻松优化它。分支:http://jsfiddle.net/gWMDT/1/ - Yahel

4
这两行代码可以去除特定输入中的尾随逗号。何时运行它取决于您自己(在更改时/点击按钮时等)。
var $theInput = $('#myInput');
$theInput.val($theInput.val().replace(/,$/, ''));

如果您还想消除可能存在的末尾空格,请将正则表达式更改为以下内容:
/\s*,\s*$/

1
$(document).on('click', '.backspace', function(){
    let value = $('#output').val();
    console.log(value);
    v = value.slice(0,-1);
    let v = value.slice(0,-1);
    console.log(v);
    $('#output').value(value);
});

0

function back_space() {

       var arrayexit = document.getElementById("tbtwo").value;

       for (var i = 0; i < arrayexit.length; i++) 
        {
            var output = arrayexit.slice(0, -1);
            document.getElementById("tbtwo").value = output;

        }


    }


0

HTML 代码


<input oninput="remove(this.value)" type="text" id="mytext" />

Js 代码

function remove(val) {
    document.querySelector("#mytext").value = val.slice(0, -1);
}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接