Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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
Jquery ajax不工作,表单帖子页面刷新_Jquery_Ajax_Forms_Post - Fatal编程技术网

Jquery ajax不工作,表单帖子页面刷新

Jquery ajax不工作,表单帖子页面刷新,jquery,ajax,forms,post,Jquery,Ajax,Forms,Post,我有以下html代码:(通过ajax加载到div中) (去掉不相关的部分) $(“#添加联系人提交”)。单击(函数(){ 警惕(‘到达这里’); $.ajax({ 键入:“POST”, url:“/contact/create/”, 数据:$(“#addContactForm”).serialize(), 成功:功能(数据、状态、xhttp){ 如果(数据){ 警报(“获取数据”); }否则{ 警报(“无数据”); } }, 数据类型:html }); 返回false; }); 所以现在当我

我有以下html代码:(通过ajax加载到div中)

(去掉不相关的部分)


$(“#添加联系人提交”)。单击(函数(){
警惕(‘到达这里’);
$.ajax({
键入:“POST”,
url:“/contact/create/”,
数据:$(“#addContactForm”).serialize(),
成功:功能(数据、状态、xhttp){
如果(数据){
警报(“获取数据”);
}否则{
警报(“无数据”);
}
},
数据类型:html
});
返回false;
});
所以现在当我点击
,它实际上会发布表单并刷新页面。我读了另一篇文章,其中指出问题在于jquery没有加载,一旦加载,问题就解决了。但是,在本例中,我收到了一个警报,它告诉我jquery正在加载(因为click事件触发正常),但是似乎没有执行
$.ajax
部分(或者它有问题)。如果我删除
$.ajax
部分,我会收到警报,页面不会提交和重新加载

最初我说这个表单html是通过主页上的ajax调用加载的,我想知道这是否与失败的ajax帖子有关。注意:我也从未收到警报(“已收到数据”)或(“无数据”),只有警报“已收到此处”

任何insite都很好。谢谢


另一个注意事项是,firebug中没有错误。

这是一个提交输入,它将自动发回表单并运行ajax脚本

试试这个

<script>
    $('#addContactSubmit').click(function (e) {
        e.preventDefault();
        alert('got here');
        $.ajax({
            type: 'POST',
            url: '/contact/create/',
            data: $("#addContactForm").serialize(),
            success: function (data, status, xhttp) {
                if (data) {
                    alert('Got Data');
                } else {
                    alert('No Data');
                }
            },
            dataType: html
        });
        return false;
    });
</script>

$(“#添加联系人提交”)。单击(函数(e){
e、 预防默认值();
警惕(‘到达这里’);
$.ajax({
键入:“POST”,
url:“/contact/create/”,
数据:$(“#addContactForm”).serialize(),
成功:功能(数据、状态、xhttp){
如果(数据){
警报(“获取数据”);
}否则{
警报(“无数据”);
}
},
数据类型:html
});
返回false;
});
我所做的只是将click事件传递给jQuery函数,然后调用e.preventDefault()停止默认DOM click事件的执行,在本例中,对于submit按钮,这是一个回发


希望这是有意义的,你做得很对

这是一个提交输入,它将自动发回表单并运行ajax脚本

试试这个

<script>
    $('#addContactSubmit').click(function (e) {
        e.preventDefault();
        alert('got here');
        $.ajax({
            type: 'POST',
            url: '/contact/create/',
            data: $("#addContactForm").serialize(),
            success: function (data, status, xhttp) {
                if (data) {
                    alert('Got Data');
                } else {
                    alert('No Data');
                }
            },
            dataType: html
        });
        return false;
    });
</script>

$(“#添加联系人提交”)。单击(函数(e){
e、 预防默认值();
警惕(‘到达这里’);
$.ajax({
键入:“POST”,
url:“/contact/create/”,
数据:$(“#addContactForm”).serialize(),
成功:功能(数据、状态、xhttp){
如果(数据){
警报(“获取数据”);
}否则{
警报(“无数据”);
}
},
数据类型:html
});
返回false;
});
我所做的只是将click事件传递给jQuery函数,然后调用e.preventDefault()停止默认DOM click事件的执行,在本例中,对于submit按钮,这是一个回发


希望这是有意义的,你做得很对

这正是我需要的!完美的我得到一个小问题,虽然与上述代码。Firebug显示:“未定义html”[此错误时中断](39超出范围18)。现在,如果我删除'dataType:html'行,它似乎工作得很好,但这是最好的解决方案吗?您尝试过使用引号吗?所以“html”。我敢肯定,如果没有引号,javascript会认为它是一个变量,而在本例中它是不存在的,这就是为什么会出现Firebug错误的原因。在创建请求时,jQuery会做一些内部工作,并且通常足够智能,能够确定发送的数据格式,因此可以安全地忽略该参数。请在此阅读:数据类型大约是页面的一半,这正是我所需要的!完美的我得到一个小问题,虽然与上述代码。Firebug显示:“未定义html”[此错误时中断](39超出范围18)。现在,如果我删除'dataType:html'行,它似乎工作得很好,但这是最好的解决方案吗?您尝试过使用引号吗?所以“html”。我敢肯定,如果没有引号,javascript会认为它是一个变量,而在本例中它是不存在的,这就是为什么会出现Firebug错误的原因。在创建请求时,jQuery会做一些内部工作,并且通常足够智能,能够确定发送的数据格式,因此可以安全地忽略该参数。在此阅读:数据类型大约位于页面的一半