我试图将一个通用表单onsubmit事件监听器添加到宽网站,在那里我无法为每个页面添加特定的事件监听器。
该活动应该为所有"形式"页面中的元素。
到目前为止,我所尝试的是:
$(function() {
$("form").submit(function(event) {
alert("submit");
});
});
示例页面dom:
<form method="post">
<input type="text" name="afield" />
<button>
submit!
</button>
</form>
但事件不会发生,你知道我做错了什么吗? 我无法编辑表单html代码,或创建针对特定表单的事件处理程序(例如,通过名称/ ID)。
谢谢!
答案 0 :(得分:2)
您的表单已提交,因为您需要event.preventDefault()
默认浏览器提交。
首先确保您已将代码包装在DOM准备就绪中
使用.on()
方法进行事件委托
使用Event.preventDefault
jQuery(function( $ ){ // DOM is now ready and $ alias secured
$(document).on("submit", "form", function(event) { // Future and existent form Elements
event.preventDefault(); // prevent browser to default submit
alert("submit"); // do anything you like
});
});
https://api.jquery.com/ready/
http://api.jquery.com/on/
http://learn.jquery.com/using-jquery-core/document-ready/
https://developer.mozilla.org/en/docs/Web/API/Event/preventDefault
此外,请确保在结束<script>
标记之前包含jQuery库和</body>
标记(最好)。
答案 1 :(得分:1)
你的表格似乎稍后出现,它从一开始就不存在。
$(function() {
$("body").on('submit', "form", function(event) {
alert("submit");
});
});
答案 2 :(得分:1)
在脚本之前添加* jQuery库:
DataMember
*:对我来说似乎不见了。始终关注控制台是否存在错误。