2011-01-05 79 views
0

我在表单中有两个提交按钮。一个删除帖子,一个删除帖子。serializeArray不包含提交按钮值

我想显示一个fancybox的编辑窗体或消息说用户删除了帖子。这一切都是由按下哪个按钮决定的,在edit.php中带有“if(isset)” - 句子。但我无法弄清楚如何获得serializeArray内的按钮的值。我试过。点击(函数()来代替,但没有发送任何东西到的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> 

我真的很感激,如果有人可以帮助我在此先感谢

回答

0

从jQuery文档为serialize():!

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

对 “成功的控制” 的规则定义如下:

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

也从尼克Craver退房this Stack Overflow solution

+0

谢谢!我现在设法做到了:) – guzh 2011-01-06 14:51:15