Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: jquery dialog onsumit
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » jquery dialog onsumit

Страниц (1): [1]
 

1. daglas1 - 09 Апреля, 2014 - 18:12:05 - перейти к сообщению
Всем привет.
Я jquery только учу. По примерам взятым из https://jqueryui[dot]com/dialog/
Научился создавать диалоговое окно по нажатию на кнопку.
А нужно несколько инная задача, выводить диалоговое окно при попытке отправить форму - то на событие onsubmit, и чтобы сабмит формы не происходил пока пользователь не закроет диалоговое окно.
Подскажите как это сделать?
2. Viper - 09 Апреля, 2014 - 19:06:20 - перейти к сообщению
Как-то так.

CODE (javascript):
скопировать код в буфер обмена
  1. $('form').submit(function(e){
  2.         e.preventDefault();
  3.  
  4.         var _this = $(this),
  5.                 dialog = $('<div id="dialog_form" title="My title"><p></p></div>').appendTo('body');
  6.  
  7.         dialog.dialog({
  8.                 dialogClass: 'dlg',
  9.                 modal: true,
  10.                 width: 800,
  11.                 height: 520,
  12.                 close: function(event, ui){
  13.                         dialog.remove();
  14.                         _this.trigger('submit');
  15.                 },
  16.                 buttons: [
  17.                         {
  18.                                 text: 'Ok',
  19.                                 id: 'button_ok',
  20.                                 click: function(){
  21.                                         // код выполняемый при клике на кнопку
  22.                                 }
  23.                         },
  24.                         {
  25.                                 text: 'Close',
  26.                                 click: function(){
  27.                                         dialog.remove();
  28.                                         _this.trigger('submit');
  29.                                 }
  30.                         }
  31.                 ]
  32.         });
  33.  
  34.         // Загружаем html в dialog
  35.         dialog.load('http://localhost/index.php?task=blabla');
  36.  
  37.         // или html с уже текущей страницы
  38.         //dialog.html($('#some_element'));
  39. });
3. Viper - 09 Апреля, 2014 - 23:05:02 - перейти к сообщению
_this.trigger('submit');
может привести к багу infinite loop. Не могу протестировать. Но можно заменить на $.post(). Тогда форму можно будет отправлять без перезагрузки страницы.
4. SAD - 09 Апреля, 2014 - 23:29:29 - перейти к сообщению
можно попробовать сделать

$('form').one('submit', ....

 

Powered by ExBB FM 1.0 RC1