serializeArray不包含提交按钮值

时间:2011-01-05 22:43:18

标签: javascript jquery fancybox

我在表单中有两个提交按钮。一个删除帖子,一个删除帖子。

我想显示一个带有编辑表单的fancybox或一条说明用户删除了帖子的消息。这一切都取决于按下哪个按钮,在edit.php中使用“if(isset)” - 句子。但是我无法弄清楚如何在serializeArray中获取按钮的值。我尝试使用.click(函数()代替,但是没有向fancybox发送任何东西..

$("#form").bind("submit", function() {
                    $.ajax({
                        type        : "POST",
                        cache       : false,
                        url         : "edit.php",
                        data        : $(this).serializeArray(),
                        success: function(data) {
                            $.fancybox(data);
                        }
                    });

                    return false;
                });

表格如下:

<form method='post' action='' id="form">
    <input type='submit' value='Edit' name='edit' />
    <input type='submit' value='Delete' name='delete' onClick="return slett('<?php echo $oppgave->name; ?>')"/>
    <input name='oppgaveID' type='hidden' value='<?php echo $oppgave->id; ?>' />
</form>

如果有人能帮助我,我真的很感激!提前谢谢!

1 个答案:

答案 0 :(得分:0)

来自serialize()的jQuery文档:

  

仅将“成功控件”序列化为字符串。没有提交按钮值被序列化,因为表单未使用按钮提交。要使表单元素的值包含在序列化字符串中,该元素必须具有name属性。来自文件选择元素的数据未被序列化。

“成功控制”的规则在此定义:

http://www.w3.org/TR/html401/interact/forms.html#h-17.13.2

另请查看Nick Craver的this Stack Overflow solution