Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么jQuery$(';#form';).submit();工作正常,但不是$(';#form';)。提交(函数(){…});?_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 为什么jQuery$(';#form';).submit();工作正常,但不是$(';#form';)。提交(函数(){…});?

Javascript 为什么jQuery$(';#form';).submit();工作正常,但不是$(';#form';)。提交(函数(){…});?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,当我尝试使用jQuery提交表单时,一个简单的 $('#form').submit(); 工作完美,但 $('#form').submit(function(){...}); 完全被忽视了。 没有错误消息,什么也没有。 它继续前进,继续我的代码的其余部分 我在这里发现的更接近的问题是: 它工作得更好,但是submit()会重新加载页面并取消Ajax的好处。 不幸的是,这对我不起作用:( 以下是我的全部代码(出于测试目的,我将真实项目简化为最简单的项目): 请帮忙 提交测试 $(函数(){

当我尝试使用jQuery提交表单时,一个简单的

$('#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>