如何使用jquery删除隐藏的字段数组

时间:2012-04-16 02:28:01

标签: jquery hidden-field

我将此作为表单的隐藏值:

<input type="hidden" name="times[]" value='{"date" : "April 12, 2012"}' />
<input type="hidden" name="times[]" value='{"date" : "April 13, 2012"}' />
<input type="hidden" name="times[]" value='{"date" : "April 14, 2012"}' />

使用jquery,如何创建一个链接,点击它可以删除上面隐藏的表单字段?所以说我点击一个链接,我希望点击删除上面的第二个隐藏表单字段,我该怎么做?

4 个答案:

答案 0 :(得分:2)

创建 -

   var $ip = $('<input>').attr({
    type: 'hidden',
    id: 'yourid',
    name: 'yourname',
   value: 'yourvalue' 
})
$(ip).appendTo('body');

然后删除 - 您可以在任何点击事件中添加此内容。

$ip.remove();

要删除所有隐藏字段,请尝试此操作。您可以在任何点击事件中添加此内容。

$("input[type='hidden']").remove();

答案 1 :(得分:1)

这是一个通用函数,可用于删除与json编码值匹配的元素。

使用removeByJsonValue(':hidden',{date:"April 13, 2012"});

进行调用
removeByJsonValue(selector, data) { // data = {key:value, ...}
    $(selector).each(function(element) {
        var element_data = $.parseJSON($(element).val());
        var remove = true;
        $(data).each(function(key,value) {
            if (element_data[key] != value) {
                remove = false;
            }
        });
        if (remove) {
            $(element).remove();
        }
    }
}

答案 2 :(得分:0)

假设您只有三个隐藏字段并且按照确切的顺序,您可以执行

$('input[type=hidden]:eq(1)').remove();

http://jsfiddle.net/vGLSd/

eq文档http://api.jquery.com/eq-selector/

remove()文档http://api.jquery.com/remove/

答案 3 :(得分:0)

如果您有如下链接:

<a href="#" id="remove">remove hidden</a>

您的jquery代码将是

$("#remove").on("click", function(e){
    e.preventDefault();
    console.log($("input[name='times[]']").eq(1).val());
    $("input[name='times[]']").eq(1).remove();
});  

链接到jsfiddle http://jsfiddle.net/LUtSp/