protectDefault () не может работать с ('submit') функцией - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть этот код:

<form action="/example/call/to/api" id="myId" enctype="multipart/form-data"  method="post">

И на внешнем файле .js я сделал эту функцию:

$('#myId').on('submit',(function(e) {
  e.preventDefault();
    $.post("URL"+$(this).attr('action'), function(c) {
      var objJson = $.parseJSON(c);
      var url = objJson[0].url;
      $.ajax({
        ('#myId').on('submit',(function(e) {
           e.preventDefault();
           $.ajax({
             type:'POST',
             url: url,
             data:formData,
             cache:false,
             contentType: false,
             processData: false,
             xhr: function () {
             //some code here,      
             success:function(html){
             //some code here 

Проблема в том, что мне не нужно перенаправление, но теперь, когда я отправляю форму, я всегда перенаправляюсь на / example / call / to / api: / Почему в этом случае предотвратитель не может работать?

Звонок работает, проблема в том, что «protectDefault» не работает!

решено , у меня была та же самая функция, которая указывала на один и тот же идентификатор, чтобы сделать другой запрос (действием внутри каждой формы). Просто разделили функции для каждого действия и все работает! Функция просто берет 1-й идентификатор внутри кода и игнорирует все остальные.

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Ваше событие при нажатии должно выглядеть примерно так:

('#myId').on('submit', function() {...}

не ('#myId').on('submit', (function() {...})

просто удалите ( в начале и в конце функции

0 голосов
/ 15 ноября 2018

Вы забыли $ или jQuery до ('#myId'), и у вас есть дополнительный ( перед функцией обработки отправки.

$('#myId').on('submit', function(e) {
 e.preventDefault();
 $.ajax({
 type:'POST',
 url: url,
 data:formData,
 cache:false,
 contentType: false,
 processData: false,
 xhr: function () {
 //some code here
 },      
 success:function(html){
 //some code here 
 }
 });

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

$(function(){
  $('#myId').on('submit', function(e) {
  e.preventDefault();
 $.ajax({
 type:'POST',
 url: url,
 data:formData,
 cache:false,
 contentType: false,
 processData: false,
 xhr: function () {
 //some code here
 },      
 success:function(html){
 //some code here 
 }
 });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...