执行$(#xxx).html(data)后, 表单失效

通过ajax执行的$(#xxx).html(data)
在data中有一个form
执行过后,form的submit就失效了

6个回答

使用html生成的新网页并没有绑定任何事件,你需要重新通过获取对象来绑定事件。

gentlelam
gentlelam 我表单的提交时用ajax写在js里的
5 年多之前 回复
gentlelam
gentlelam 什么事绑定事件,能举个简单的例子吗,谢谢
5 年多之前 回复

用IE F12看下修改后的html是什么样的了,data中的html是不是不合法或者被转义了。

gentlelam
gentlelam html()后生成的网页显示出来是正常的,我审查元素看了也没什么问题
5 年多之前 回复

我表单的提交是用ajax写在js里的

这里有个先后顺序 你如果是先绑事件 再执行$(#xxx).html(data) 那么data里头的表单实际上没有绑定到这个事件 你需要在这步执行完后再绑定一下事件 一般来讲这样就没问题了 如果还出现无法提交的问题 可以考虑是否是绑定的dom的id或class冲突等问题

你的data中form的submit怎么个失效法?是绑定了事件没有执行?

事件绑定要放到你的$(#xxx).html(data)后执行一次,而不是放到页面上$(function(){....})里面绑定,这样ajax没返回执行$(#xxx).html(data)可能你的事件绑定已经执行了,会找不到对象导致事件无法绑定。要不你就改为live动态绑定,不过效率低,不如直接$(#xxx).html(data)后绑定

$(#xxx).html(data)之后新增的元素可以每次新增后用on(event,function)绑定事件,或者直接一开始就用$(document).on(event,selector,function);绑定一次。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐