2017-04-11 57 views
1

我在这个问题上挣扎了大约一周,我需要做什么,用ajax提交表单,这已经加载了ajax,我尝试了很多解决方案,但没有任何工作,所以如果有人知道,正确的做法,我将不胜感激, 并感谢先进。如何使用已经加载ajax的ajax提交表单,而无需重新加载当前页面?

这是我的代码:

<form class="w3-container" method="POST" action="forms-submitting" id="SignIN"> 
     <p> 
     <label><b> إسم المستخذم </b></label> 
     <input class="w3-input w3-border" type="text" name="user_name"> 
     </p> 
     <p> 
     <label><b> كلمة المرور <b></label> 
     <input class="w3-input w3-border" type="password" name="pass_word"> 
     </p> 
     <p> 
      <button type="submit" class="w3-button w3-text-blue"> تسجيل الدخول </button> 
     </p> 
</form> 

这是我的Ajax代码:

$("#SignIN").submit(function(e) { 
    var url = "forms-handle.php"; 
    $.ajax({ 
     type: "POST", 
     url: url, 
     data: $("#SignIN").serialize(), 
     success: function(data) 
     { 
      alert(data); 
     } 
    }); 
    e.preventDefault(); 
}); 
+0

表单由ajax加载?如果确实如此,可能是因为提交表单的js代码没有找到“#SignIN”标识。 –

回答

1

既然你不使用常规提交你可以改变你的按钮button类型和将点击事件添加到此按钮,例如:

<button type="button" id="login" class="w3-button w3-text-blue"> تسجيل الدخول </button> 

$('body').on('click', '#login', function(e) { 
    e.preventDefault(); 

    $.ajax({ 
     type: "POST", 
     url: "forms-handle.php", 
     data: $("#SignIN").serialize(), 
     success: function(data) 
     { 
      alert(data); 
     } 
    }); 
}); 

注意:由于form是动态加载的,您应该使用事件代理.on()

希望这会有所帮助。

+1

我认为这个解决方案可以工作,很好。 –

+0

我试过你的解决方案,但它仍然不工作! –

+0

好的,请检查您的浏览器控制台的任何错误..检查网络选项卡,看看是否发送请求.. –

相关问题