Проверка JQuery Запускается, но быстро обновляет страницу, которая приводит к сбою функции при отправке

0
<script type="text/javascript">
$(document).ready(function(){
//$('.this_btn').click(function(){

    //$('#myModal').modal('show');

    //setTimeout(function() {enter code here
        //$('#myModal').modal('hide')   
    //}, 5000);
//})


/*Validation*/


var forum = $('#popup_form');



forum.validate({
    keyup:false,
    debug: false,
    rules:{
        title:{
            required:true
            },

        f_name:{
            required:true,
            minlength: 4
            },

        email:{
            email:true,
            required:true
            },

        t_phn:{
            required:true,
            digits: true
            },

        //t_phn:'validateDecimal',

        call_me:{
            required:true
            },

        d_amount:{
            required:true
            }
        },

        submitHandler: function(form) {
            form.submit(
                //alert('done')
            );
        },

        success: 'valid',


    showErrors: function(errorMap, errorList) {
      $.each(this.successList, function(index, value) {
        return $(value).popover("hide");
      });
      return $.each(errorList, function(index, value) {
        var _popover;
        console.log(value.message);
        _popover = $(value.element).popover({
          trigger: "manual",
          placement: "top",
          content: value.message,
          template: "<div class=\"popover\"><div class=\"arrow\"></div><div class=\"popover-inner\"><div class=\"popover-content\"><p></p></div></div></div>"
        });
        _popover.data("popover").options.content = value.message;
        return $(value.element).popover("show");
      });
    }
    });

$('.this_btn').click(function() {
    console.log('clicked')

    if(forum.valid()==false){
        console.log('if condition') 
        //$('#myModal').modal('show');
        //$('#myModal').modal('show');
    }
    else{
    $('#myModal').modal('show');
    //alert('Thank you');
    console.log('working')  
    //$('#myModal').delay(4000)
    setTimeout(function() {
        $('#myModal').modal('hide') 
    }, 5000);


        }


}); 



 })


</script>

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

(Извините, мой английский недостаточно хорош. Надеюсь, вы поймете, что я хочу спросить !! Спасибо)

Показать ещё 1 комментарий
Теги:
validation

1 ответ

0
Лучший ответ

В submitHandler если вы закончите его return false он не отправит форму. Итак, все, что вам нужно сделать, это переместить форму в свой сценарий setTimeout:

submitHandler: function(form) {
    $('#myModal').modal('show');
    console.log('working')  
    setTimeout(function() {
        $('#myModal').modal('hide') 
        $('#popup_form').submit();//<-- form submit is here now
    }, 5000);
    return false;//this prevents submitHandler from automatically submitting the form
},

Вам не нужно ничего делать в вашем обработчике .this_btn. Просто удалите его.

  • 0
    Это то, что я сделал перед проверкой ... Спасибо, кстати, и это был способ сделать это ...
  • 0
    Отлично, @Muzamil, вы должны либо принять этот ответ (нажав на флажок рядом с ним), либо сделать свой собственный и принять его.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню