本次实例采用phpwind8.0作为测试载体,首先对event对象的概念做一些必要的阐述:
event对象以属性的方式提供事件行为的相关信息,只要event对象可用,这些信息便能够被获取,比如以下列出了event对象的属性描述:
- srcElement:触发事件的元素
- type:事件类型
- screenX:屏幕的x坐标
- screenY:屏幕的y坐标
- button:鼠标按键
- keyCode:键盘按键
- shiftKey:按下shift键
- altKey:按下alt键
- ctrlKey:按下ctrl键
那接下来就对shiftKey和ctrlKey做一下简单的应用吧,具体表现为当用户按下Ctrl+Shift键,就可以实现提交表单,并将结果显示出来!
首先,在phpwind8论坛根目录/tempalte/wind目录下创建一个htm模版文件,并命名为:test.htm,代码如下:
<!--<?php print<<<EOT
-->
<form method="post" action="test.php" name="form">
<span>标题:</span><input type="text" name="tbTitle"/>
<br />
<span>内容:</span><textarea id="taContent" name="taContent" cols="20" rows="10"></textarea>
<br />
<input type="submit" value="提交"/>
</form>
<script language="JavaScript">
<!--
var txtContent = document.getElementById("taContent");
txtContent.onkeydown = function(evt){
evt = evt ? evt : window.event;
if(evt.ctrlKey && evt.shiftKey) this.form.submit();
}
//-->
</script>
<!--
EOT;
?>-->
然后,在phpwind8论坛根目录创建一个php文件,并命名为:test.php,代码如下:
< ?php
require_once 'global.php';
initGP(array('tbTitle','taContent'));//接收表单post提交过来的两个变量
echo $tbTitle."<br>".$taContent;//打印到浏览器
require_once(R_P.'require/header.php');//调用论坛头部文件
require_once(PrintEot('test'));//调用模版进行显示
footer();//调用底部文件
?>
onkeydown是文本框的一个键盘事件,定义了一个匿名函数作为事件处理程序,这个函数接收了一个参数evt,在非 IE的浏览器中,会自动将event对象作为参数传进来。而在IE中,event对象是一个全局的对象,在任何地方均可使用,并不会作为函数的参数,因此 需要使用如下语句来处理浏览器的兼容性:
evt = evt ? evt : window.event;
接下来就是打开http://localhost/pw8/test.php文件,提交表单内容,按下Ctrl+Shift键便可实现提交表单内容,并将提交的变量打印了出来,您不妨试试这个神奇的功能吧~~



