使用serializeArray和observer模式列出应用程序

时间:2012-05-30 21:55:17

标签: jquery json observer-pattern serializearray

我试图创建一个列表应用程序,让用户将项目输入到将在提交(列表标记)上动态创建的文本字段中。然后我希望能够删除任何单独添加的项目(使用将添加到每个列表标签旁边的删除按钮)。

到目前为止,我设法在提交输入字段后创建了对象数组。

我怎样才能抓住"值"为了动态创建我的列表标签? 如何删除所选元素?

我想使用观察者模式完成该应用程序。

请看下面的代码: http://jsfiddle.net/Lk3p8/

由于

1 个答案:

答案 0 :(得分:0)

我已经创建了jsFiddle的更新版本,似乎可以满足您的需求。

..编辑...已更新以反映您的请求。我没注意到你将它保存在values数组中。对于那个很抱歉。我也对你的标记做了一些细微的修改。

$(document).ready(function(){

var deleteBtn = "<input class='deleteitem' type='button' value='Delete' name='delete' id='delete' />";
var values = [];
$("#myForm").submit(function(){
    var frm= $("#myForm").serializeObject();

    values.push(frm.item);


    $("#display").append("<li><p>" + frm.item +"</p>"+  deleteBtn +"</li>");
    return false;
});


$("#display").on("click", ".deleteitem", function(event){
    var removeItem = $(this).parent().children('p').text();
     $('.log').after("<p>"+removeItem +  " removed</p>");      
    $(this).parent().remove();


    values = jQuery.grep(values, function(value) {
       return value != removeItem;
    });

    console.log(values);
});


});

概念证明标记不是最好的,但你明白了。