Javascript JQuery preventDefault()使用ajax、.on、form、class和future元素

Javascript JQuery preventDefault()使用ajax、.on、form、class和future元素,javascript,jquery,Javascript,Jquery,我有一个动态创建的表单,然后我需要使用AJAX和preventDefault()提交它 如果我使用下面的代码,它是有效的 $('#container').on('submit', 'form', function(event){ event.preventDefault(); $.ajax({ type: 'POST', url: /myurl, data: $(this).serialize() }); }); 但是我需

我有一个动态创建的表单,然后我需要使用AJAX和
preventDefault()
提交它

如果我使用下面的代码,它是有效的

$('#container').on('submit', 'form', function(event){
    event.preventDefault();

    $.ajax({
        type: 'POST',
        url: /myurl,
        data: $(this).serialize()
   });
});
但是我需要使用一个类提交,如下所示,所以这样做是行不通的。有什么解决办法吗

$('#container').on('submit', '.ajax-form', function(event){
    event.preventDefault();

    $.ajax({
        type: 'POST',
        url: /myurl,
        data: $(this).serialize()
   });
});
简短的HTML是:

<div id="container">
    <form action="/foo/bar" class="ajax-form" method="post">
        <input type="text" placeholder="Name" value="" />
        <input type="submit" value="Save" />
    </form>
</div>

编辑: 对不起,我的回答含糊不清。我的代码示例基本上展示了在表单提交中使用
preventDefault()
时的工作原理。话虽如此,实际上唯一能阻止事件避免默认操作的是:您没有针对正确的表单,或者代码中的其他地方有JS语法错误。从句法上说,你很好

$(document).on('submit', '.ajax-form', function(e) {
    e.preventDefault();
    // Do other stuff
});

两者都可以很好地工作。还有,为什么要防止违约?您不想重新加载页面吗?顺便说一句,preventdefault阻止提交,而不是在同一个函数中执行代码,因此不管发生什么情况,都应该执行console.log…@Unknown,它不是:@CrisimIlNumenoreano,是的,我是通过ajax提交的,因为我不想重新加载页面。我想你可能对
return
preventdefault
感到困惑。当遇到
preventDefault
时,事件的基本性质(此处为提交)将停止。这并不意味着将执行前几行。如果您有新问题,请单击按钮提问。如果这个问题有助于提供上下文,请包含一个指向该问题的链接。我没有新问题。您只是想向我们展示您可以如何很好地格式化代码,还是这实际上是为了解决OPs问题?如果是,怎么做?OPs代码有什么问题?为什么你的“解决方案”能解决它?哎哟!我会发布一个更详细的答案。我想基本上说明什么是可行的。但是为什么OPs代码不起作用呢?我看不出有什么问题。要明确的是:我并不反对你的代码像我们一样工作,我只是认为它与问题无关。