网络编程
位置:首页>> 网络编程>> JavaScript>> form的submit方法和submit事件(onsubmit)(2)

form的submit方法和submit事件(onsubmit)(2)

作者:大米 来源:口碑网ued 发布时间:2008-09-28 13:29:00 

标签:form,submit,提交,事件

三、解决方案

当然“先进”的注册方式本身也提供了手工触发事件的解决方案,只是要针对DOM2标准和IE写不同的程序,另外这个程序,对“原始”的注册方式也一样有效。请看代码示例:


<script type="text/javascript">

 //IE fire event

 if (form.fireEvent) {

     form.fireEvent('onsubmit');

     form.submit();

 //DOM2 fire event

 } else if (document.createEvent) {

     var ev = document.createEvent('HTMLEvents');

     ev.initEvent('submit', false, true);

     form.dispatchEvent(ev);

 }

</script>

四、代码总结

这里不再对各细节方法做说明,不熟悉的朋友请自行查阅相关资料。我们把整个代码串起来:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=GBK">
    <title>submit</title>
    <script type="text/javascript" src="http://k.kbcdn.com/js/yui/build/utilities/utilities.js"></script>
</head>
<body>
    <form id="form1" action="http://www.koubei.com"></form>
    <script type="text/javascript">
        var form = document.getElementById('form1');
        //YUI register event
        YAHOO.util.Event.on('form1', 'submit', function() {
            alert('yui');
        });
        //DOM0 register event
        form.onsubmit = function() {
            alert(1);
        };
        //DOM2 register event
        if (form.addEventListener) {
            form.addEventListener('submit', function() {
                alert(2);
            }, false);
        //IE register event
        } else if (form.attachEvent) {
            form.attachEvent('onsubmit', function() {
                alert(2);
            });
        }

        //IE fire event
        if (form.fireEvent) {
            form.fireEvent('onsubmit');
            form.submit();
        //DOM2 fire event
        } else if (document.createEvent) {
            var ev = document.createEvent('HTMLEvents');
            ev.initEvent('submit', false, true);
            form.dispatchEvent(ev);
        }
    </script>
</body>
</html>

整个跑下来有个小问题,FX下,不需要form.submit(),直接把表单给提交出去了,所以这句也省掉了,原因知道的请回复。

这个demo在IE6/IE7/FX下测试通过。

0
投稿

猜你喜欢

  • JS代码:function showFlash(src,w,h){    html&nbs
  • 1、纯粹的截取字符串function cutstr(thestr1,strlen) dim l,t,c&nbs
  • 如何远程注册DLL?试试下面的代码:<% Response.Buffer = True %&g
  • 可能很多人都要问,网站的文字还需要设计吗?对于很多的网站来说,字在整个网站的内容中占了80%以上甚至更多,或者换个角度上说,网站可以没有颜色
  • 前两天看的时候,所用的歌曲地址加密方式已变更。将以前的发出来供大家赏玩。解密函数是从flash里面反编译出来的,加密函数是自己根据解密函数写
  • 前几天,Opera宣布其用户已经超过1亿——桌面版和手机版均超过5000万。Opera Mini是一个很优秀的手机浏览器,对手机用户而言,O
  • 鉴于人手严重不足(当时算两个半人的资源),打消了逐个库手动去改的念头。当前的程序结构不允许搞革命的做法,只能搞搞改良,所以准备搞个自动化工具
  • 图片的间隙Q:我有一张大图片,把它切割后在Dreamweaver中进行拼接,可是总是有间隙,不知为什么?A:不知你是否把表格的边距、间距和边
  • SQL Server对上亿的表进行排序或者上亿的表之间进行join,会导致系统失去响应。◆1.我确实做了一个很大的查询,涉及的数据表有两亿条
  • 关于如何区分艺术和设计的话题总是玄之又玄,并因此引发的争论也有很长一段时间。艺术家和设计师都基于相同的知识基础来创作视觉作品,但他们创作的理
  • 我们生活在信息繁杂的社会,尤其是在互联网时代,人们开始通过网络开始接触越来越多的信息,那么,如何获取/传递有效而准确的信息将非常重要。在网页
  • 技术在进步,思维在发展,网页上的花样当然也要一天天地赶时髦了。在“滚动字符”、“跑马灯”已成平常的今天,网页上还能变出新花样吗?◆制作鼠标指
  •  var getWindow = function(obj) { var&nbs
  • 有时候想为我们的网页提供多语言支持,如果一种语言用一张网页来做实在太麻烦了,幸好Google提供了语言工具功能,下面介绍如何利用它来实现网页
  • CSS Type set是一款在线字体调整工具。你可以使用它来对字型进行排版调整并实时的看到CSS代码。在下图中,其中,你可以设置文本的字体
  • 先谈一下面包屑的由来:很久很久以前,在大森林的边上住着一个贫穷的樵夫,他妻子和两个孩子与他相依为命。他的儿子名叫汉赛尔,女儿名叫格莱特。后来
  • 主要利用了XMLHTTP的一些方法和属性来获取服务器的信息。    以下是全部源代码: &
  • javascript代码编写在页面中实现页内搜索功能,类似Word等文本编辑软件里的搜索功能,只要是页面中的字符(别管是显在的还是隐蔽在文本
  • 最近在处理Qzone黄钻图标更新时,想起近期对业务图标进行优化所遇到的一些问题,把思绪收拾起来和大家一共探讨,欢迎多方声音。在实际工作中,图
  • 磁盘搜索是性能的很大瓶颈。这个问题在数据大量增长以至于无法使用有效的缓存时尤为明显。或多或少随即访问大数据库时,就必然会有至少一次磁盘搜索来
手机版 网络编程 asp之家 www.aspxhome.com