2016-01-26 2 views
0

Я подаю форму, как это:Почему JavaScript onClick не запускает функцию отправки jQuery?

<input id="submitBtn" style="margin-top:20px;" type="button" onclick="document.getElementById('form94').submit();" value="Opdater"> 

что по какой-то причине не вызывает мою jQuery.submit() функцию.

$("#form94").submit(function() { 
    var form = $(this); 
     $.ajax({ 
      url : form.attr('action'), 
      type : form.attr('method'), 
      data : form.serialize(), // data to be submitted 
      success: function(response){ 
       $("#showFancyBoxThankYouLink").click(); 
      } 
     }); 
    return false; 
}); 
+0

вынимают типа = «кнопку» и атрибут OnClick из вашей кнопки HTML .. и сложить type = "submit" – ameenulla0007

+0

Есть причина, по которой это происходит ... из-за некоторых проблем с дизайном. –

+1

добавьте скрипку с вашим html. – ameenulla0007

ответ

0

Поскольку вы используете разные селекторы

document.getElementById('form94'); //returns a HTML DOM Object 
$('#form94'); //returns a jQuery Object 

Вы можете попробовать следующий код, он отлично работает

<form id="form94"> 
    <input id="submitBtn" style="margin-top:20px;" type="button" onclick="$('#form94').submit();" value="Opdater"> 
</form> 

<script type="text/javascript"> 
$("#form94").submit(function(e) { 
    e.preventDefault(); 
    alert('test'); 
}); 
0

сделать функцию из нее и запустить его с OnClick, как это:

<input id="submitBtn" style="margin-top:20px;" type="button" onclick="myfunction()" value="Opdater"> 

function myfunction() { 
var form = $(this); 
     $.ajax({ 
      url : form.attr('action'), 
      type : form.attr('method'), 
      data : form.serialize(), // data to be submitted 
      success: function(response){ 
       $("#showFancyBoxThankYouLink").click(); 
      } 
     }); 
    return false; 
} 
0

ли Javascript запущен после того, как форма была оказана? Если нет, убедитесь, что ваш javascript после формы или попробуйте запустить его после загрузки документа.

$(document).ready(function() { 
    $("#form94").submit(function() { 
    var form = $(this); 
     $.ajax({ 
      url : form.attr('action'), 
      type : form.attr('method'), 
      data : form.serialize(), // data to be submitted 
      success: function(response){ 
       $("#showFancyBoxThankYouLink").click(); 
      } 
     }); 
    return false; 
    }); 
}); 

Другой способ идти о том, форма представить, чтобы добавить onsubmit атрибут в форму и она возвращает функцию. Вы также можете изменить тип кнопки для отправки и удаления атрибута onclick.

<form id="form94" name="form94" onsubmit="return SubmitMyForm();"> 
    <input type="submit" value="Opdater"> 
</form> 

<script> 
function SubmitMyForm() { 
    var form = $(this); 
    $.ajax({ 
     url : form.attr('action'), 
     type : form.attr('method'), 
     data : form.serialize(), // data to be submitted 
     success: function(response){ 
      $("#showFancyBoxThankYouLink").click(); 
     } 
    }); 
    return false; 
} 
</script> 
0

Без примера кода трудно сказать. Но также, некоторые браузеры только представляют форму, когда пользователь нажимает кнопку отправки, вы не можете отправлять через скрипт.

В этом разделе также есть тонна других сообщений SO, и все они либо сводятся к форме, не существующей при присоединении события отправки (это ваш скрипт, выполняемый в верхней части документа или на готовом событии документа ?).

форма еще не существует: Why Jquery form submit event not firing? Jquery .Submit() is not triggering submit event

Подача с помощью сценария: Should jQuery's $(form).submit(); not trigger onSubmit within the form tag?

Не используя кнопку отправки: jQuery submit not firing

0

заменить этот

onclick="document.getElementById('form94').submit();" 

с onclick="$("#form94").submit();"

javascript submit() не работает в IE, и они могут быть другими ошибками.

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