Пользовательский интерфейс Jquery: отправка определенной формы с помощью метода submit - PullRequest
1 голос
/ 23 января 2012

У меня есть вопрос относительно диалоговых окон Jquery ui.

Что я сделал / я сделал: У меня есть несколько форм (в зависимости от результата, возвращенного из результата MySQL). формы выглядят так:

<form action="?" method="POST" id="form1">

    <input type="text" name="title"/>

     .................................
      other inputs
     .................................

     <input type="submit" class="delete" id="delete" name="delete" value="delete"/>

</form>

той же формы, но только с идентификатором формы как 'form2' или в зависимости от запроса (form3, form4 и т. Д ....)

JQuery коды

$(document).ready(function(){

                var $dialog = $('<div></div>').html('<span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Do you really want to delete it?')

                .dialog({

                            autoOpen:false,

                            resizable: false,

                            height:140,

                            modal: true,

                            title:'Confirm delete',

                            buttons: {

                                "Yes": function(){

                                *********************************       
                                document.forms["form1"].submit();
                                *********************************

                                $(this).dialog("close");   

                                },

                                "No": function(){

                                    $(this).dialog("close");

                                }

                            }

                });

                $('#delete').click(function(){

                            $dialog.dialog('open');

                            return false;

                });

    });

Чего я хочу достичь? Я хочу вызвать действие отправки только для формы, в которой кнопка удаления находится в . Я имел в виду, что если пользователь нажимает кнопку удаления на форме form1, то должна быть отправлена ​​только форма form1. Я выделил одну строку в коде Jquery звездами. в этой конкретной строке, когда пользователь нажимает кнопку удаления, должен быть извлечен идентификатор соответствующей формы или индекса формы (которому принадлежит кнопка удаления) и отправка только этой конкретной формы.

проблема, с которой я столкнулся: Я могу жестко закодировать идентификаторы форм, но я не могу точно узнать количество форм, так как это зависит от условия поиска. Поэтому я пытаюсь получить его динамически. это возможно?

p.s. в случае нажатия кнопки удаления, если я выберу $ ('# delete'), это сработает только для одной формы. Если я использую $ ('. Delete'), он отправляет все формы или может быть перезаписан? (я думаю, потому что при выполнении var_dump ($ _ POST) он возвращает пустой массив)

Любая помощь будет оценена. и если потребуется дополнительная информация, я могу предоставить.

Ответы [ 3 ]

0 голосов
/ 23 января 2012

@ itachi

вы не можете присвоить один и тот же идентификатор нескольким элементам.измените ваш код, как показано ниже

$('.delete').click(function(e){
    e.preventDefault();  
    currentForm = $(this).parent('form').get(0);
    $dialog.dialog('open');
    return false;
});

и

buttons: {

    "Yes": function(){
        if(currentForm){
            currentForm.submit();
        }
        $(this).dialog("close");   
    },
    "No": function(){
        $(this).dialog("close");
    }
}

, вы можете просмотреть запущенную демо здесь

0 голосов
/ 18 апреля 2013

Функция может быть

<script>
function submitform(formname){
$(document).ready(function() {
    $(("#"+formname)).submit(function() {
        $.post('page.php', $(this).serialize(), function(data) {
            $("#cart").append(data);
        });
        return false;
    });
}); 
}
</script>

Кнопка отправки формы
Вы можете указать имя формы при отображении формы

<button class="large-6 columns" type="submit" onclick="javascript:submitform('formname')">Select</button>
0 голосов
/ 23 января 2012

май, это вам поможет

$(this).parent('form').attr('name')
$(this).parent('form').serialize() 
$('.delete').click(function(){

   alert($(this).parent('form').attr('name'));
   alert($(this).parent('form').serialize());

});

Спасибо

...