Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   не отрабатывает отправка формы (https://javascript.ru/forum/jquery/61376-ne-otrabatyvaet-otpravka-formy.html)

mrkid 15.02.2016 17:38

не отрабатывает отправка формы
 
есть форма:

<form method="post" class="form-horizontal" id="validation-form">
       
  <g:render template="form"/>

   <fieldset class="buttons">
       <g:actionSubmit class="btn btn-small btn-warning" action="update" value="${message(code:  default.button.update.label', default: 'Update')}"/>
       <g:actionSubmit id="send_del" class="btn btn-small btn-danger" action="delete" value="${message(code: 'default.button.delete.label', default: 'Delete')}" formnovalidate=""/>
   </fieldset>
                                             
</form>


и есть прерыватель отправки формы(подтверждение):
<script type="text/javascript">
    $("#send_del").click(function(e){
        e.preventDefault();
        var $this = $(this);
        bootbox.confirm({
            message: "Вы уверены, что хотите удалить?",
            closeButton: false,
            callback: function (result) {
                if (result)
                    $this.submit();
            }
        });
    });
</script>


вопрос в том, что
$this.submit();

не срабатывает, при условии, что result=true.

destus 15.02.2016 18:09

А зачем это? e.preventDefault();

mrkid 15.02.2016 21:41

Цитата:

Сообщение от destus (Сообщение 407906)
А зачем это? e.preventDefault();

чтобы экшн формы сразу не выполнился, если его убрать, то экшн "Delete" отрабатывает сразу, минуя подтверждение.

krasovsky 16.02.2016 10:03

Где у формы action? Или где обработка на onsubmit?

mrkid 17.02.2016 23:13

Цитата:

Сообщение от krasovsky (Сообщение 407981)
Где у формы action? Или где обработка на onsubmit?

эта форма на Grails написана, action'ов тут два Update и Delete. Обработчики в соответствующем контроллере.

по факту, кнопки на форме выглядят так:
<fieldset class="buttons">
<input class="btn btn-small btn-warning" type="submit" value="Обновить" name="_action_update">
<input id="send_del" class="btn btn-small btn-danger" type="submit" formnovalidate="" value="Удалить" name="_action_delete">
</fieldset>

mrkid 17.02.2016 23:18

могу вот ещё что сказать: код скрипта рабочий, на других страницах работает как надо. а вот на двух других - почему-то нет. если убрать e.preventDefault(); удаление проходит, но не останавливается на подтверждении, а если добавить, то останавливается на подтверждении, но не происходит дальнейшее перенаправление на выполнение сабмита кнопки send_del, т.е. удаление.

mrkid 17.02.2016 23:22

т.е. по факту - элементарщина: нажимаешь отправить форму, перехватываешь событие, ловишь там подтверждение или опровержение операции (true\false) и, либо продолжаешь отправку формы, либо ничего не делаешь. было бы проще, если кнопка с экшеном была одна, там можно было бы form.submit использовать....


Часовой пояс GMT +3, время: 11:31.