2014-01-07 2 views
0

я написал следующий скрипт для отправки формы с задержкой:JQuery представить обновляет страницу вместо представления

$(document).ready(function() { 
    $('#form-submit').on('click', function (event) { 
     event.preventDefault(); 
     // event.stopPropagation(); 
     $('#big-dots-loader').css({ 
      'display': 'block' 
     }); 
     $('#wait-please').show(); 
     $('#cities-holder').empty(); 
     setTimeout(function() { 
      $("#new-item-form").submit(); 
     }, 3000); 
     //$('#form-submit').trigger('click'); 
    }); 
}); 

Теперь, когда я нажимаю на кнопку, задержка происходит, но форма не получает представленный к указанному URL-адресу, и, скорее, страница обновляется.

В чем может быть причина?

Здесь также открытие формы тег:

<form id="new-item-form" 
    action="<?php echo base_url("process/ads/new"); ?>" 
    method="POST" enctype='multipart/form-data'> 
+0

Правильно ли значение атрибута 'action'? –

+0

Обычно, когда страница обновляется при подаче предложения из FORM, это означает, что FORM отправляется. Я не понимаю вашу проблему. Проверьте свою вкладку в сети, верно ли URL-адрес действия FORM? –

+0

Почему этот вопрос помечен тегом [tag: php]? –

ответ

-1

Пожалуйста, попробуйте ниже код, это будет работать

$(document).ready(function(){ 
    $('#form-submit').submit(function(event){ 
     event.preventDefault();  
     $('#big-dots-loader').css({'display':'block'}); 
     $('#wait-please').show(); 
     $('#cities-holder').empty(); 
     setTimeout(function(){$("#new-item-form").submit();}, 3000);      

     return false; 
    });   
}); 

#form-submit должен быть идентификатор <form> тега

+1

Вы уже предотвращаете поведение по умолчанию, поэтому зачем возвращать false? И если '# form-submit' является идентификатором FORM, что такое' # new-item-form' ??? –

+1

Да, вы правы, но мы можем пойти с возвратом false, которое мы обычно делаем для формы, которую мы хотим отправить после некоторой бизнес-логики. Но ты прав !!!! Это действительно имеет смысл либо держать event.preventDefault(), либо возвращать false –

+0

Ya true, потому что return false в jQuery является просто ярлыком для предотвращения поведения по умолчанию и прекращения барботажа события –

0

Попробуйте это: -

$(window).load(function() { 
    var submit = false; 


    $('#form-submit').on('click', function (event) { 
    $('#big-dots-loader').css(
     'display': 'block' 
    ); 
    $('#wait-please').show(); 
    $('#cities-holder').empty(); 
      setTimeout(function(){ 
       $("#new-item-form").submit(); 
      }, 3000); 
      if(!submit) 
       event.preventDefault(); 
    }); 
}; 
+0

нет не работает. ничего не происходит –

+0

Почему 'var submit = false;'? Имеет ли смысл «переменная»? –

0

Если вы не уверены, что вызвано или что отправлено, посмотрите данные запроса.

В браузере Firefox вы можете использовать плагин Firebug и посмотреть вкладку «Сеть», чтобы узнать, отправлена ​​ли форма или нет, а какие параметры POSTED.

Аналогично, в браузере Chrome вы можете использовать встроенные средства разработки (F12) для просмотра сетевых запросов (вы должны проверить «Сохранить журнал при навигации», чтобы сетевой журнал не был потерян).

Также проверьте в окне консоли браузера, что js не сообщает о какой-либо ошибке. Ошибка в js останавливает выполнение js и часто приводит к сложному поведению.

Смежные вопросы