1

これをフォームの非表示の値として持っています:

<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を使用して、クリックすると上の非表示のフォームフィールドを削除できるリンクを作成するにはどうすればよいですか? リンクをクリックして、そのクリックで上の 2 番目の非表示のフォーム フィールドを削除したいとします。

4

4 に答える 4

2

作成するには -

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

次に削除します-これは任意のクリックイベントに追加できます..

$ip.remove();

すべての非表示フィールドを削除するには、これを試してください。これは、任意のクリック イベントに追加できます。

$("input[type='hidden']").remove();
于 2012-04-16T02:33:22.727 に答える
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();
        }
    }
}
于 2012-04-16T02:37:14.950 に答える
0

隠しフィールドがちょうど 3 つしかなく、その正確な順序であると仮定すると、次のことができます。

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

http://jsfiddle.net/vGLSd/

eqドキュメントhttp://api.jquery.com/eq-selector/

remove()ドキュメントhttp://api.jquery.com/remove/

于 2012-04-16T02:30:05.033 に答える
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/へのリンク

于 2012-04-16T02:33:59.413 に答える