如何添加&从隐藏的输入字段中删除值?

时间:2011-06-22 11:13:58

标签: javascript jquery

<input type="hidden" id="values" value="1,2,1,3" />

<a href="#" id="add" data-value="4">add</a>

<a href="#" id="remove" data-value="1">remove</a>

<script type="text/javascript">
$(document).ready(function()
{
    $('#add').click(function()
    {
        var value = $(this).attr('data-value');

        //add to $('#values')

        return false;
    });

    $('#remove').click(function()
    {
        var value = $(this).attr('data-value');

        //remove all values that match in $('#values');

        return false;
    });
});
</script>

实施例

a)添加,输出为:1,2,1,3,4

b)删除,输出为2,3

3 个答案:

答案 0 :(得分:5)

您可以使用基本的JavaScript函数和一些jQuery好东西来实现这一点。查看各个功能的文档以了解有关它们的更多信息。

添加

$('#values').val(function(i, v) {
    var arr = v.split(',');
    arr.push(value);
    return arr.join(',');
    // or actually easier in this case:
    // return v ? v + ',' + value : value;
});

删除:

$('#values').val(function(i, v) {
    return $.grep(v.split(','), function(v) { 
        return v != value; 
    }).join(',');        
});

参考: valsplitpushjoingrep

DEMO

答案 1 :(得分:0)

添加:

$('#add').click(function() {
    var values = $(this).attr('data-value');
    alert($("#values").val());
    $("#values").val($("#values").val() + values);    
    alert($("#values").val());

    return false;
});

删除将以相同的方式工作。

您可以使用.val()

从隐藏输入中获取值

答案 2 :(得分:0)

您可以使用

 var str = $('#values').val() + value;
 $('#values').val(str);

将值添加到文本框