event.preventDefault (); не работает в ajax post laravel Framework 5.8.17 - PullRequest
1 голос
/ 19 июня 2019

Здравствуйте, обычно это работает в другом месте, но этот конкретный пост AJAX Post protectDefault () не работает для меня.

Я получаю какое-то значение динамически, я устанавливаю это значение в скрытые поля формы и затем запускаю сообщение Ajax Post другомуМАРШРУТ.

Ниже приведена часть кода, для которой мне нужна помощь или помощь.

<!--Init_Form_ST-->
<div style="display:none;">
  <form id="frm_init" name="frm_init" action="{{ route('init_message') }}" method="POST"   >
    {{ csrf_field() }}
    {{ method_field('POST') }}
    <input type="hidden" name="init_messageType" id="init_messageType" value="chatMessage" >
    <input type="hidden" name="init_idempotencyid" id="init_idempotencyid" value="" >
    <input type="hidden" name="init_receveruserid" id="init_receveruserid" value="" >
    <input type="hidden" name="init_lang" id="init_lang" value="" >    
    <?php /*?><input type="submit" name="init_submit" id="init_submit" value="init_sub" ><?php */?>
    <button type="submit" name="init_submit" id="init_submit" ></button>
  </form>        
</div>
<!--Init_Form_EN-->

Я пытался разными способами предотвратить отправку формы и перейти на другую страницу.

alert("1st Alert - Before Click Trigger");
$("#init_submit").trigger('click');
alert("2nd Alert - After Click Trigger");

$("#frm_init").on('submit', function(event) {
  event.preventDefault();

  alert("3rd Alert - Into submit"); // <== It never comes here

  var init_formdata = new FormData(this);
  var init_msg_route = "{{ route('init_message') }}";

  $.ajax({
    headers: {
      'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    },
    url: init_msg_route,
    dataType: 'json',
    cache: false,
    async: false,
    type: "POST",
    data: init_formdata,
    contentType: false,
    processData: false,
    success: function(result) {
      alert("Success");
    },
    error: function(jqxhr, status, exception) {
      alert('Exception:', exception);
    }
  });
});

указатель Переход к 1-е оповещение и ожидание нажатия кнопки.После этого указатель показывает 2nd Alert , но без ожидания страница переходит к пути маршрута.

Я даже протестировал, удалив весь код Ajax.Но 3-е предупреждение никогда не срабатывает

Я уже тестировал следующие параметры

// $("#frm_init").submit(function(event){
// $(document).on("submit","frm_init", function(event) {                                                                
// $(document).on("click","#init_submit", function(event) { 
// $("#init_submit").click(function(event){

1 Ответ

1 голос
/ 19 июня 2019

Я нашел одну глупую ошибку. Я запускаю "Отправка формы", прежде чем поймать "Отправка формы"

Это может помочь кому-то, кто может делать глупые ошибки, как я. Спасибо всем за помощь.

enter image description here

...