Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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 预防性故障不起作用 名义: 阿佩利多:_Jquery_Html_Forms - Fatal编程技术网

Jquery 预防性故障不起作用 名义: 阿佩利多:

Jquery 预防性故障不起作用 名义: 阿佩利多:,jquery,html,forms,Jquery,Html,Forms,JS $(文档).ready(函数(){ $(函数(){ $(“#联系方式”)。提交(功能(e){ e、 预防默认值(); 返回false; 变量形式=$(此); var post_url=form.attr('action'); var post_data=form.serialize(); $('loader',form).html('Please Wait…'); $.ajax({ 键入:“POST”, url:post_url, 数据:post_数据, 成功:功能(msg){ $(形式)

JS

$(文档).ready(函数(){
$(函数(){
$(“#联系方式”)。提交(功能(e){
e、 预防默认值();
返回false;
变量形式=$(此);
var post_url=form.attr('action');
var post_data=form.serialize();
$('loader',form).html('Please Wait…');
$.ajax({
键入:“POST”,
url:post_url,
数据:post_数据,
成功:功能(msg){
$(形式).fadeOut(500,函数(){
html(msg.fadeIn();
});
}
});
});
});
});
我试图只处理提交而不加载页面。但“防止违约”不起作用


请注意,任何建议都是善意的,调用
document.getElementById('contact-form')。submit()
不会触发
submit()
事件。由于您使用的是jQuery,您可以通过将“Enviar”链接更改为:

$(document).ready(function () {
    $(function () {
        $('#contact-form').submit(function (e) {
            e.preventDefault();
            return false;
            var form = $(this);
            var post_url = form.attr('action');
            var post_data = form.serialize();
            $('#loader', form).html('<img src="images/loader.gif" /> Please Wait...');
            $.ajax({
                type: 'POST',
                url: post_url,
                data: post_data,
                success: function (msg) {
                    $(form).fadeOut(500, function () {
                        form.html(msg).fadeIn();
                    });
                }
            });
        });
    });
});


完成后,删除
return false位于
e.preventDefault()
行之后。它会导致函数退出,从而阻止它之后的任何代码运行。

既然您已经在使用jQuery,为什么不以同样的方式调用submit事件呢?删除内联
onclick
内容,给锚定一些ID,然后执行如下操作:

<a class="button" href="#" onClick="$('#contact-form').submit()">Enviar</a>
锚只需要这些ID:

$(function () {
    $('#submitLink').click(function () {
        $('#contact-form').submit();
    });

    $('#resetLink').click(function () {
        $('#contact-form').reset();
    });
});

需要注意的其他几点:

  • 您正在处理程序中立即调用
    return
    ,因此其他代码都不会运行。您可能希望在函数末尾返回
  • 使用这样的锚是非常不标准的,可能会导致进一步的问题。一个很好的例子是“
    href=“#”
    ”,这是HTML中的一种反模式。我建议使用此功能的按钮。锚定用于将两个文档链接在一起(或文档中的两个位置),而不是调用表单功能

浏览器控制台中的任何错误是否确定阻止ajax执行的不是返回false?为什么要使用锚来提交表单,而不是提交按钮您有嵌套的dom就绪处理程序。。。您可以删除其中一个调用
文档。getElementById('contact-form')。submit()
不会触发提交事件,因此您的提交处理程序不会被调用。您缺少id选择器
$(function () {
    $('#submitLink').click(function () {
        $('#contact-form').submit();
    });

    $('#resetLink').click(function () {
        $('#contact-form').reset();
    });
});
<a class="button" id="submitLink" href="#">Enviar</a>
<a class="button" id="resetLink" href="#">Limpiar</a>