jQuery循环为每个'drop'生成隐藏字段

时间:2012-05-09 11:03:04

标签: javascript jquery loops for-loop while-loop

我有一个拖放日历' on'需要将细节传递给变量。

到目前为止,我已经设法将它添加到textarea中,所以我可以看到它正在记录数据或创建一个隐藏的字段,将采取最后一滴。

但是,我需要将每个项目放在隐藏字段中,这样我就可以将它传递到下一页,然后在PHP中处理它。

我猜我需要一个循环,所以对于每一滴...生成隐藏的字段。

但我没有运气让它发挥作用。

这是我的代码。任何帮助都非常有用。

由于

 drop: function(date, allDay) { // this function is called when something is dropped

            // retrieve the dropped element's stored Event Object
            var originalEventObject = $(this).data('eventObject');

            // we need to copy it, so that multiple events don't have a reference to the same object
            var copiedEventObject = $.extend({}, originalEventObject);

            // assign it the date that was reported
            copiedEventObject.start = date;
            copiedEventObject.allDay = allDay;

            // render the event on the calendar
            // the last `true` argument determines if the event "sticks" (http://arshaw.com/fullcalendar/docs/event_rendering/renderEvent/)
            $('#calendar').fullCalendar('renderEvent', copiedEventObject, true);


            //Record and add dropped items to list
            var txt = $("#listbox");
            var dtstart = copiedEventObject.start + '\n'
            var caltitle = copiedEventObject.title

            txt.val(txt.val() + dtstart); // For our reference - Remove later

                var input = document.createElement("input");
                input.setAttribute("type", "hidden");
                input.setAttribute("name", "dtstart");
                input.setAttribute("value", dtstart);

                //append to form element that you want .
                document.getElementById("calendarform").appendChild(input)

            // remove the element from the "Draggable Events" list
            $(this).remove();

        }
    });


});

1 个答案:

答案 0 :(得分:1)

您可以做的是使列表框成为“ul”元素,如下所示

<ul id = "listbox"> 

 </ul>

然后将以下jquery添加到您的函数

var txt = $('#listbox');     
txt.append("<li class ='listItem'> "+dtstart +"</li>")

最后,你会得到一个&lt; .li&gt;(点在那里,否则它不会在答案中显示)同一个类的元素列表。然后,您可以获取“listItem”类的所有元素,并将值传递到下一页

希望这个答案很清楚

修改

要获取'listItem'类中的所有值,您可以执行以下操作

var listItems = $('.listItem');

listItems.each(function(){
    // your code goes here for each record
});