Javascript 为什么jQuery$(';#form';).submit();工作正常,但不是$(';#form';)。提交(函数(){…});?
当我尝试使用jQuery提交表单时,一个简单的Javascript 为什么jQuery$(';#form';).submit();工作正常,但不是$(';#form';)。提交(函数(){…});?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,当我尝试使用jQuery提交表单时,一个简单的 $('#form').submit(); 工作完美,但 $('#form').submit(function(){...}); 完全被忽视了。 没有错误消息,什么也没有。 它继续前进,继续我的代码的其余部分 我在这里发现的更接近的问题是: 它工作得更好,但是submit()会重新加载页面并取消Ajax的好处。 不幸的是,这对我不起作用:( 以下是我的全部代码(出于测试目的,我将真实项目简化为最简单的项目): 请帮忙 提交测试 $(函数(){
$('#form').submit();
工作完美,但
$('#form').submit(function(){...});
完全被忽视了。
没有错误消息,什么也没有。
它继续前进,继续我的代码的其余部分
我在这里发现的更接近的问题是:
它工作得更好,但是submit()会重新加载页面并取消Ajax的好处。
不幸的是,这对我不起作用:(
以下是我的全部代码(出于测试目的,我将真实项目简化为最简单的项目):
请帮忙
提交测试
$(函数(){
$('#testBtn')。单击(函数(){
console.log('click out');
$('#myForm')。提交(函数(){
console.log('click-In');
$.ajax({
方法:“POST”,
url:'myResult.php',
数据:$(this).serialize()
}).完成(功能(数据){
console.log('data back');
$(“#结果显示”).html(数据);
}).fail(函数(){
警报(“错误”);
});
});
});
});
我仅有的console.log是submit函数之外的第一个。
我尝试使用alert,使用get方法,在Apache和nginx服务器上使用不同的jQuery版本。。。
都一样:'(
PHP:5.6.23
jQuery 2.2.4(测试了多个版本)
请帮助,我很绝望:(实际上$(“#form”)返回一个数组,正确的执行方法是指定数组的项将执行给定的函数:
$(“#表单”)[0]。提交(函数(){
//动手
})
你知道submit()
和submit(function(){})
之间的区别是什么吗?嗯……我现在知道了,可能永远不会忘记:)谢谢大家的回答,这很有帮助,下次我会做得更好;)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>please help</title>
<link href="../htdocs/css/styles.css" rel="stylesheet">
</head>
<body>
<form id="myForm" method="post">
<input name="key01" type="checkbox" id="key01" checked>
<input name="key02" type="checkbox" id="key02" checked>
<input name="key03" type="checkbox" id="key03" checked>
<input name="key04" type="checkbox" id="key04" checked>
<input name="key05" type="checkbox" id="key05" checked>
<div id="testBtn">test submit</div>
</form>
<div id="resultDisplay"></div>
<script src="../htdocs/js/jquery-2.2.4.min.js"></script>
<script src="../htdocs/js/icheck.min.js"></script>
<script type="application/javascript">
$(function () {
$('#testBtn').click(function () {
console.log('click out');
$('#myForm').submit(function () {
console.log('click In');
$.ajax({
method: 'POST',
url: 'myResult.php',
data: $(this).serialize()
}).done(function (data) {
console.log('data back');
$("#resultDisplay").html(data);
}).fail(function () {
alert("error");
});
});
});
});
</script>
</body>
</html>