jQuery:将<form>对象从匿名函数参数</form>序列化

时间:2010-01-08 22:42:35

标签: jquery jquery-ui

我在draggable() div中有一个表单。表单看起来像这样:

<form id="add_interface" name="add_interface">
            USB  Type: 

                <select name="type-id">
                    <option value="68">Micro-A</option>
                </select>
              Use:

                <select name="use-id">
                    <option value="13">Audio    </option>
                </select>

</form>

如果将其“删除”到droppable() div中,我最终会遇到此错误:

XML filter is applied to non-XML value ({0:#1={}, length:1, context:#1#})

droppable的jQuery看起来像这样:

 $("#droppable").droppable({
     drop: function(event, ui) {
         $(this).effect('highlight');
         alert(ui.draggable.("#add_interface").serialize());
     }
 });

我假设我没有正确访问表单,但是如果我尝试简单地执行ui.draggable.serialize()我最终会得到一个空字符串。只是想知道我是如何在正确的可拖动div中序列化表单的。

谢谢!

2 个答案:

答案 0 :(得分:2)

你们几乎都在那里,但我不得不全力以赴地尝试一切,最终弄明白:

 $(function(){
     $('.ui-widget-header').draggable({cursor: 'move', revert: true});
     $("#droppable").droppable({
         drop: function(event, ui) {
             $(this).effect('highlight');
             alert($(ui.draggable.find('#add_interface')).serialize());
         }
     });
 });

所以你处理ui参数的方式是这样的:$(ui.draggable.find('#add_interface'))然后你可以serialize()那样,否则我只是提醒[object Object]而不是序列化形式

答案 1 :(得分:1)

我不确定你是否只是在你的代码中输入了一个拼写错误,或者你是否在源代码中得到了它 ,但我想:

ui.draggable.("#add_interface").serialize()

应该是:

ui.draggable("#add_interface").serialize()