怎么样捕获表单的提交事件?

blackant2 2003-06-28 08:34:15
关于onsubmit我做了一个测试页面如下
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 7.0">
<TITLE></TITLE>
<script language="jscript">
function msgchg(){
alert('change');
}
function chgonsubnit(){
alert("chgonsubnit");
return false;
}
function attachChangeEvent(){
if(typeof(document.all["msg"])!="object"){
setTimeout("attachChangeEvent();",300);
return;
}

document.all.msg.attachEvent('onchange',msgchg);

document.all.ifo.onsubmit=new Function("return chgonsubnit()");



attachChangeEvent();
</script>
</HEAD>
<BODY>
<form id="ifo" id="ifo" onsubmit="javascript:alert('submit');">
<input type="text" name="msg" ID="msg"> <input type="submit"> <input type="button" onclick="javascript:document.all.ifo.submit();">
</form>
</BODY>
</HTML>

现在的问题是使用form的submit方法时根本没有激发onsubmit事件,那调用submit方法后到底激发的是什么事件???????
...全文
100 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
whyman 2003-06-28
  • 打赏
  • 举报
回复
用submit()方法提交是不会触发onsubmit()的,要把type=button改为type=submit,这样当按下按钮时,才会触发onsubmit().
fason 2003-06-28
  • 打赏
  • 举报
回复
onsubmit可以做到的,表单验证也大多在这里截取事件,如
<script>
function check(f){
if(!f.txt.value)return false
return true
}
</script>
<form onsubmit="return check(this)">
另外也可以这样<input type=submit onclick="return check()">这样的形式

致于你说的为什么onsubmit没有触发,是因为用form1.submit(),时已经挠过了一步
bencalie 2003-06-28
  • 打赏
  • 举报
回复
<form action="..." method="post" onsubmit="if(条件成立)表单对象.submit()">
blackant2 2003-06-28
  • 打赏
  • 举报
回复
事实上我受朋友委托帮他写碧聊的配置脚本
因为原脚本中大量的调用了submit()方法
所以我想捕获提交事件,应该怎么做呢
如果onsubmit不可以的话,不过先谢谢大家了
bencalie 2003-06-28
  • 打赏
  • 举报
回复
如果用submit()方法提交而不是当即提交按钮,onsubmit事件是不会触发的,所以submit()方法应该放在onsubmit方法的事件处理方法中,以便根据条件判断提交与否
pantech_36 2003-06-28
  • 打赏
  • 举报
回复
应该是可以的啊,只是在onsubmit中return false是无效的.
也就是不管怎样它都会提交.

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧