Javascript .提交文件';不处理附加元素

Javascript .提交文件';不处理附加元素,javascript,jquery,forms,Javascript,Jquery,Forms,我为快速回复创建了自定义表单(.append),现在我想使用ajax来提交回复而不重新加载,我尝试了。在('submit',function(e).)上(也尝试了事件委派)。现在我尝试了。在('click',function(e).)上(不知道为什么) $("#newpost").on('click', '.send', function(event) { event.preventDefault(); }); 这不起作用: $("#newpost").on('submit', '.s

我为快速回复创建了自定义表单(
.append
),现在我想使用ajax来提交回复而不重新加载,我尝试了
。在('submit',function(e).
)上(也尝试了事件委派)。现在我尝试了
。在('click',function(e).
)上(不知道为什么)

$("#newpost").on('click', '.send', function(event) {
    event.preventDefault();
});
这不起作用:

$("#newpost").on('submit', '.send', function(event) {
    event.preventDefault();
});
附表:

<form id="newpost" method="post" action="/forum/addpost/"+ id +"/"+ rek +" name="newpost">
  <div class="editor" align="left">
    <textarea name="post" cols="50" rows="5"></textarea>
   <div class="submit" align="right">
     <input class="send" value="." title="Send" type="submit">
   </div>
  </div>
</form>
正确的形式是

$( "#newpost" ).submit(function( event ) {
  event.preventDefault();
});
稍后编辑: 我现在明白你想要什么了。尝试一种新的方法。假设id是23,rek是“添加”值,那么你有以下条件:

HTML

问题可能在这里

<div class="submit" align="right">
     <input class="send" value="." title="Send" type="submit">

如果动态附加整个表单,则必须将提交侦听器附加到页面加载时已存在的内容。类似于:

$('body').on('submit', '#newpost', function(event) {
    event.preventDefault();
});
编辑:
我可能误解了这个问题。您所说的部分不起作用,因为您没有提交“.click”按钮,但“.click”按钮所在的表单不起作用。

这不起作用,因为您的textarea(name=“post”)名称与表单属性冲突

从jquery文档中可以看出:


表单及其子元素不应使用与表单属性(如submit、length或method)冲突的输入名称或ID。名称冲突可能会导致混乱的失败。有关规则的完整列表以及检查标记是否存在这些问题,请参阅DOMLint。

尝试使用jQuery('body')。关于('submit','form#newpost',function(){//Your job.});@Nidecker是附加的表单吗?@tilz0R-不,不起作用,我在函数中使用了默认值,但表单已提交normally@Curt-是,jQuery(“div.go_top”).append(postform);(表单在postform变量中)。发送工作正常,表单创建正确。这只是在表单未被postedI尝试的情况下。提交也是唯一有效的选项。单击('click')我现在明白了。我用类似的方法更新了我的答案,以实现您的愿望。我有一个输入错误:而不是var ID=$(this)。attr(“ID”);write var ID=$(this)。attr(“ID”);小写:id@VasHanea-不,不,我只是想知道为什么。on('submit'..)不起作用(这是因为名称冲突)。并且已经定义了rek和id变量(它们与属性没有任何共同之处)。ajax也可以工作。无论如何,谢谢;-)重点是,我厌倦了“回复系统”在一个站点上。向下滚动,单击“回复”,重定向到编辑器,写下您的回复,单击“发送”,在成功页面a上重定向,然后在主题中重定向bact。因此,我制作了这个用户脚本(用于greasemonkey)-在底部添加编辑器,提交后现在没有重定向。表单由创建。附加和回复由AjaxThank发送谢谢,我认为这是个问题。不幸的是,我无法更改名称属性,所以我需要使用。on('click'…)方法。谢谢不,这很好,但存在另一个名称冲突,这就是问题所在
<div class="submit" align="right">
     <input class="send" value="." title="Send" type="submit">
<div align="right">
         <input class="send" value="." title="Send" type="submit">
$('body').on('submit', '#newpost', function(event) {
    event.preventDefault();
});