我是在一个简单的ASP.NET页面上写的:
jQuery(document).ready(function() {
jQuery("form").submit(function() {
alert("kikoo");
return false
});
});
当我提交(通过点击按钮,链接,......)时,我从未看到警告框。
asp.net页面中是否存在“绕过”提交的内容(我想到了dopostback javascript方法)
谁能告诉我为什么?
答案 0 :(得分:0)
您是否可能对jQuery submit()功能的使用感到困惑?
听起来您希望在页面加载时发生警报对话框,因为您认为提交功能实际上是在提交表单。但是通过你使用它的方式,submit()函数只是将一个事件附加到你的表单,这样当你实际做提交它时,你的函数就会运行。
要从代码中实际触发提交,您必须使用不带任何参数的submit():
$("form").submit();
这是一个扩展的例子,以Mike C的答案为基础:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Title</title>
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$(function() {
$("form").submit(function() {
alert("kikoo"); return false
});
// you could also chain this onto the end of the previous function
$("form").submit();
});
</script>
</head>
<body>
<form><input type="submit" /></form>
</body>
</html>
答案 1 :(得分:0)
最后我发现do回发方法覆盖了我的处理程序(仍然不明白为什么)。
所以这就是我所做的: 1.我在JS函数中声明我的行为
function MyBehaviour()
{...}
2。然后我做了一个“经典的”jQuery绑定
jQuery(document).ready(function() {
jQuery("form").submit(EncodeAllTxtControl);
});
3。然后在每个表格上,我有myu行为,但保留已经声明的那些
jQuery("form").each(function() {
var oldonSubmit = this.onsubmit;
if (typeof oldonSubmit != 'function') {
this.onsubmit = function() {
MyBehaviour();
return true;
};
}
else
this.onsubmit = function() {
MyBehaviour();
oldonSubmit();
return true;
};
});
这似乎有效。
答案 2 :(得分:-1)
我发现了问题。
当我点击某个按钮时,他们调用一个执行form.submit的所有javascript方法。这不是jQuery捕获的。
我会纠正我的按钮的行为,它会正常工作。
感谢所有人的帮助。