2011-01-05 3 views
0

У меня есть две кнопки отправки в форме. Один, который удаляет сообщение, и один для его редактирования.serializeArray не включает значение кнопки отправки

Я хочу показать fancybox либо с помощью формы редактирования, либо с сообщением о том, что пользователь удалил сообщение. Все решено, какая кнопка была нажата, с предложением if (isset) "в edit.php. Однако я не могу понять, как получить значение кнопки внутри 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> 

Я был бы очень признателен, если кто-то может мне помочь Спасибо заранее

ответ

0

из документов JQuery для serialize():!

Только «удачные элементы управления» сериализуются в строку. Значение кнопки отправки не сериализуется, так как форма не была отправлена ​​с помощью кнопки. Чтобы значение элемента формы было включено в сериализованную строку, элемент должен иметь атрибут имени. Данные из элементов выбора файлов не сериализованы.

Правила для "успешного управления" определяются здесь:

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

Также проверьте this Stack Overflow solution от Nick Craver.

+0

спасибо! Мне удалось это сделать сейчас :) – guzh