|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
WHATWG致力于Web表单和应用程序,而W3C(WorldWideWebConsortium,万维网联盟)专注于XHTML2.0。在2006年,双方决定进行合作.来创建一个新版本的HTML。1、成绩形貌
当用JS挪用form的办法submit间接提交form的时分,submit事务不呼应。为何?晓得的请复兴。类比一下,我用input.select()做了测试,却能呼应select事务。这个缘故原由先放一边,我们看看先怎样把眼下的成绩办理了。
不呼应事务的代码示例:
<formid="form1"action="http://www.webjxcom"></form>
<scripttype="text/javascript">
varform=document.getElementById(form1);
form.onsubmit=function(){
alert(1);
};
form.submit();
</script>
实践运转,不会有alert出来。
固然用submit办法来提交表单有背UnobtrustiveJavascript的准绳,但偶然候不能不用,好比做搜刮提醒(auto-complete)选中Item以后就必要用JS来提交搜刮表单。
2、成绩剖析
既然自己不呼应事务,那只要手工触发这些事务了,断定手工触发计划之前先回忆一下事务的注册体例:
“原始”的注册体例有两种,看代码示例:
<formid="form1"action="http://www.poluoluo.com"onsubmit="alert(1)"></form><formid="form1"action="http://www.poluoluo.com"></form>
<scripttype="text/javascript">
document.getElementById(form1).onsubmit=function(){
alert(1);
}
</script>
如许的注册事务,会给form增添了一个办法onsubmit。以是,能够经由过程间接实行这个办法,同等于手工触发了事务。
看代码示例:
<scripttype="text/javascript">
form.onsubmit();
</script>
如许能够失掉一个alert。
可是在现在“先辈”的DOM2尺度注册体例和IE的注册体例attachEvent已很经常使用。这些注册体例,onsubmit办法是不存在的,假如利用form.onsubmit()会间接报错。
3、办理计划
固然“先辈”的注册体例自己也供应了手工触发事务的办理计划,只是要针对DOM2尺度和IE写分歧的程序,别的这个程序,对“原始”的注册体例也一样无效。请看代码示例:
<scripttype="text/javascript">
//IEfireevent
if(form.fireEvent){
form.fireEvent(onsubmit);
form.submit();
//DOM2fireevent
}elseif(document.createEvent){
varev=document.createEvent(HTMLEvents);
ev.initEvent(submit,false,true);
form.dispatchEvent(ev);
}
</script>
4、代码总结
这里不再对各细节办法做申明,不熟习的伴侣请自行查阅相干材料。我们把全部代码串起来:
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=GBK">
<title>submit</title>
<scripttype="text/javascript"src="http://k.kbcdn.com/js/yui/build/utilities/utilities.js"></script>
</head>
<body>
<formid="form1"action="http://www.poluoluo.com"></form>
<scripttype="text/javascript">
varform=document.getElementById(form1);
//YUIregisterevent
YAHOO.util.Event.on(form1,submit,function(){
&nbs
12下一页
通过我们的HTML编辑器,您能够编辑HTML,然后点击按钮来查看结果。 |
|