2012-04-09 3 views
0

Onsubmit Я хочу стрелять FancyBox всплывающее окноJQuery Validate форма - окно FancyBox onsubmit огонь

Мне нужно только, чтобы показать FancyBox всплывающее окно, как только форма VALIDATED (используется JQuery Validate)

кажется, всплывающее FancyBox всплывающее окно только когда форма не заполнена правильно!

http://gloss-hair.com/old/owl/OWLFORM.html

Я не знаю, как загрузить функцию всплывающего FancyBox только после того, как форма проверенную:

<script type="text/javascript"> 
$().ready(function() { 
    // validate the competition form when it is submitted 
    $("#ie9_competition").validate({ 
     errorPlacement: function (error, element) { 
      if (element.is(":checkbox")) { 
       error.appendTo(element.closest('div')); 
       } 
      else { 
       error.insertAfter(element.parent().find("label"));   
       } 
      }, 
     rules: {    
      sEmail: { 
       required: true, 
       email: true 
      }, 

     } 
    });   
}); 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $(".fancybox4").fancybox({ 
      'hideOnContentClick': true 
     }); 
    }); 
</script> 

ответ

1

Попробуйте как этот

$().ready(function() { 
     // validate the competition form when it is submitted 
     $("#ie9_competition").validate({ 
      errorPlacement: function (error, element) { 
       if (element.is(":checkbox")) { 
        error.appendTo(element.closest('div')); 
        } 
       else { 
        error.insertAfter(element.parent().find("label"));   
        } 
       }, 
      rules: {    
       sEmail: { 
        required: true, 
        email: true 
       }, 

      },   
      submitHandler: function(form){ 

       jQuery('.fancybox4').trigger('click'); 

      } 
     });   
    }); 

Тогда удалите событие onsubmit из тега формы. Так что ваша форма тег как

<form id="ie9_competition" method="post"> 
+0

Thats great thanks this works a treat - я изначально добавил его, как и выше, но у меня были некоторые проблемы с синтаксисом (скобка или что-то отсутствует). Awesome cheers again – Jai

+0

Hmmm onsubmit также необходимо очистить форму (а также всплывающее сообщение fancybox, которое работает). Знаете ли вы, как я могу очистить форму после подтверждения, и onsubmit идет вперед - снова заблаговременно. – Jai

+0

@JaimieLisaStow: вы можете использовать «resetForm» для сброса сообщений об ошибках проверки и может потребоваться очистить все значения полей. –

2

JQuery Validation плагин позволяет определить submitHandler, который выполняет если форма действительна:

submitHandler: function(form){ 
    form.submit(); // submit the form 
    // code to show your fancybox here 
} 

Ваш Validate() код будет выглядеть следующим образом:

$("#ie9_competition").validate({ 
errorPlacement: function (error, element) { 
    if (element.is(":checkbox")) { 
    error.appendTo(element.closest('div')); 
    } else { 
    error.insertAfter(element.parent().find("label"));   
    } 
}, 
rules: {    
    sEmail: { 
    required: true, 
    email: true 
    } 
}, 
submitHandler: function(form){ 
    form.submit(); // submit the form 
    // code to show your fancybox here 
} 
}); 

Вы можете увидеть все возможные варианты для Validate() метод здесь: http://docs.jquery.com/Plugins/Validation/validate#toptions

+0

Привет спасибо за Ваш ответ - Как я добавить это в мой сценарий валидации – Jai

+0

таким же образом, у вас есть _rules: _ и _errorPlacement: _ варианты там. submitHandler - это еще один вариант, подобный этим. – azawaza

+0

PS: Я отредактировал свой ответ выше, чтобы включить пример полного кода validate() с добавленным параметром submitHandler. – azawaza