jquery: Colorbox закрыть iFrame onsubmit - PullRequest
       9

jquery: Colorbox закрыть iFrame onsubmit

0 голосов
/ 30 сентября 2011

У меня есть вопрос о закрытии формы с помощью colorbox после отправки. Я нашел этот вопрос , так что теперь я знаю, как закрыть форму после отправки. Проблема в том, что другой javascript проверяет поля ввода моей формы, и будет сообщение об ошибке (простое оповещение ()), когда некоторые поля не заполнены ... я хочу закрыть clorbox iframe onsubmit, только когда проверка не возвращает no ошибка ... в противном случае пользователь получит подсказку, что он пропустил некоторые поля ввода, но форма все равно закроется ... так как я могу проверить это с помощью jQuery ... есть ли возможность, возможно, проверить, является ли "alert ()" показанный на экране ... тогда можно сказать, что при появлении alertpopup не закрывайте окно colorbox, в противном случае закройте его, потому что ошибки не было ... кто-нибудь понимает, что я имею в виду? Опять же: я не могу изменить скрипт проверки! Тогда я мог бы просто добавить .colorbox.close(); в этот скрипт ...

Проверка - это простая функция, которая выполняется при отправке ... в этой функции есть переменная "msg", которая содержит сообщение об ошибке. Должен быть способ получить эту переменную "msg", когда функция выполняется, и проверить, пусто это или нет ....?

Может ли кто-нибудь помочь мне с этим ... это немного сложно объяснить для меня ..

1 Ответ

0 голосов
/ 04 октября 2011

Вы, вероятно, можете получить содержимое элемента "msg" из содержимого iFramed, ссылаясь на него следующим образом:

parent.msg поля имя

То, что я сделал в подобной ситуации, таково:

  • Предоставьте пользователю возможность отменить форму iFrame. Этот путь выхода использует «встроенные» методы закрытия ColorBox
  • при подтверждении, проверка на наличие ошибок. Если он проходит, используйте разрешение для встроенного метода close, если нет, то не покидайте форму.

Вы можете точно узнать, как это сделать на сайте автора плагина :

Запретить закрытие ColorBox / Изменить поведение $ .colorbox.close ()

Метод close ($ .colorbox.close ()) может быть кэширован и переопределен, чтобы обеспечить некоторый контроль над тем, что происходит, когда ColorBox закрывается. Это влияет на элементы управления, которые привязаны к нему (такие как escKey, overlayClose и кнопка закрытия) и непосредственно вызывают метод close.

Например, допустим, мы открываем ColorBox для отображения фрагмента html, содержащего форму, и мы хотим предупредить посетителя, что он отказывается от своей формы, если он попытается закрыть ColorBox перед отправкой своих данных.

var originalClose = $.colorbox.close; 
$.colorbox.close = function(){ 
    var response; 
    if($('#cboxLoadedContent').find('form').length > 0){ 
       response = confirm('Do you want to close this window?'); 
       if(!response){ 
          return; // Do nothing. 
       } 
    } 
    originalClose(); 
}; 
$('a#example').colorbox();
...