Jquery 通过多个按钮将多个字符串添加到输入字段中

Jquery 通过多个按钮将多个字符串添加到输入字段中,jquery,forms,input,Jquery,Forms,Input,我试图通过多个按钮向输入字段添加多个字符串。问题是,每次单击新按钮时,它都会替换/覆盖上一次插入,因此我无法添加字符串,而只能替换 如果重新单击同一按钮,还希望删除该字符串 请参阅下面的代码和小提琴- 你好 对 不 大概 $(“按钮”)。在('click',function()上{ var text=$(this.text(); $(“输入”).val(文本+,); }); 同时添加输入中已有的值,否则它只会用新值替换已有的值 $("button").on('click', function

我试图通过多个按钮向输入字段添加多个字符串。问题是,每次单击新按钮时,它都会替换/覆盖上一次插入,因此我无法添加字符串,而只能替换

如果重新单击同一按钮,还希望删除该字符串

请参阅下面的代码和小提琴-



你好 对 不 大概 $(“按钮”)。在('click',function()上{ var text=$(this.text(); $(“输入”).val(文本+,); });
同时添加输入中已有的值,否则它只会用新值替换已有的值

$("button").on('click', function() {
    var text = $(this).text();

    $("input").val(function(_, val) {
        var arr = val.split(','),
            pos = $.inArray(text, arr);

        pos != -1 ? arr.splice(pos, 1) : arr.push(text);

        return arr.filter(function(n) {
            return n.trim().length
        }).join(',');
    });
});

首先,从现有输入中获取值

然后检查当前文本是否已经存在。如果是这样,就把它扔掉

然后将当前文本附加到末尾

$("button").on('click', function() {
    var text = $(this).text() +',';
    $('input').val(function(_, val) {
        if (val.match(text)) {
            return val.replace(text, '');
        }
        return val + text;
    });
});

谢谢,效果很好,但是如果再次单击,如何删除该值?@Kulerbox-啊,好的!也用这个更新了答案。关闭,但是如果reclicked@Kulerbox:啊,我误解了那部分。再看一眼。现在应该在工作了,问问你的期望。
$("button").on('click', function() {
    var text = $(this).text() +',';
    $('input').val(function(_, val) {
        if (val.match(text)) {
            return val.replace(text, '');
        }
        return val + text;
    });
});