Jquery 捕获表单提交不起作用
我尝试了几个示例来捕获表单的提交,但我得到的只是重新加载页面Jquery 捕获表单提交不起作用,jquery,html,ajax,forms,Jquery,Html,Ajax,Forms,我尝试了几个示例来捕获表单的提交,但我得到的只是重新加载页面 jQuery(document).ready(function($) { var frm = $('#export-form'); //Catch the submit frm.submit(function(ev) { console.log("Here I am") //Not visible in Firebug // Prevent reload ev.
jQuery(document).ready(function($)
{
var frm = $('#export-form');
//Catch the submit
frm.submit(function(ev) {
console.log("Here I am") //Not visible in Firebug
// Prevent reload
ev.preventDefault();
$.ajax({
type : 'POST',
url : 'libs/GenerateCSV.php',
data : 'export',
success : function (data) {
alert('success'); // Temporary debugging, later a redirection is planned
}
});
});
});
但脚本从未执行过。
我尝试过使用onsubmit调用,但得到了相同的结果。
有人能帮我吗?您的代码示例看起来没有什么问题 是否确保在脚本之前加载jQuery 此外,您还可以将代码包装在
文档中。ready
语句:
jQuery(document).ready(function($)
{
// your code goes here
});
试试这个方法
<!-- Include jQuery before this code -->
<form id="export-form" method="post" accept-charset="utf-8">
<a id="submit-form" href="#">Start Download</a>
</form>
<script type="text/javascript">
$(document).ready(function() {
$("#submit-form").click(function(){
$.ajax({
type : 'POST',
url : 'libs/GenerateCSV.php',
data : 'export',
success : function (data) {
alert('success');//Just for debugging, later a redirection to a file is planned
}
});
});
});
</script>
$(文档).ready(函数(){
$(“#提交表单”)。单击(函数(){
$.ajax({
键入:“POST”,
url:'libs/GenerateCSV.php',
数据:“导出”,
成功:功能(数据){
警报('success');//只是为了调试,计划稍后重定向到文件
}
});
});
});
锚定标记不会自动提交您的表单并重定向您。我总是使用此解决方案提交表单而不重定向。您可以在成功事件上重定向到任何您想要的位置。希望它能对您有所帮助。检查您的HTML代码,我想您可能会在
中单击onClick
,如下所示:
<input type="submit" value="submit" onClick="this.form.submit(); this.disabled=true; this.value='waiting ...'; ">
JavaScript控制台中是否显示任何错误消息?(请确保将控制台设置为跨重新加载保存消息,以便可以看到它们)“稍后计划重定向到文件”-Ajax的要点是在不加载全新文件的情况下更新内容。如果要重定向,为什么不使用常规表单提交?据我所知,我没有收到任何错误消息,因为代码从未执行过。你说定期提交表格是什么意思?我必须首先调用php脚本来生成文件,然后我想下载它。我的想法是让js代码在短时间内休眠,然后重定向到存储的文件,以处理mysql的任何延迟。你有一张表格。您有一个提交按钮。您没有任何JavaScript。如果没有错误消息,那么我不明白为什么这不起作用。(假设问题中的代码准确地反映了您正在测试的代码)脚本位于表单之后。使用ready处理程序不会有任何区别。我已经尝试了这两种方法,并在frm提交中添加了一个控制台日志,但该站点仍在重新加载。