事件通过给发送消息的方式来触发事件处理器对用户的动作做出相关响应来达到交互的目的,但此交互一般只是单方面的交互,即事件发送消息给事件处理器的过程,而不包括事件处理器将处理结果返回给事件的过程。
事实上,事件处理器能将结果返回给事件,并由此影响事件的默认行为。
考察如下代码:[code]<! DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0//EN”
“http://www.w3.org/TR/REC-html140/strict.dtd”>
密码:
[/code]程序运行后,若表单的“用户”字段为空,鼠标单击“提交”按钮后,将弹出“错误”警告框如图所示。
在该警告框中单击“确定”按钮,浏览器返回原始页面,并将“用户”字段设置为当前的输入焦点。
若表单的“用户”字段非空,则继续判断“密码”字段。
同样,若表单的“密码”字段为空,鼠标单击“提交”按钮后,将弹出“错误”警告框如图所示。
在该警告框中单击“确定”按钮,浏览器返回原始页面,并将“密码用户”字段设置为
当前的输入焦点。
该段代码中,当客户端单击页面默认的表单 submit 按钮即“提交”按钮后,使用下列
语句触发表单submit 事件的处理器:
onsubmit=return(ch_input())
事件处理器所对应的函数ch_input()根据页面表单各字段的情况判断:
if(document.all.MyForm.name.value==‘’)
{
msg+=" 您输入的用户名为空,请重新填写并确认! \n";
alert(msg);
document.all.MyForm.name.focus();
return false;
}
判断各字段时,如果该字段为空,则弹出警告框,用户单击“确认”按钮后,浏览器返回设置该字段为当前的输入焦点,并将布尔值false 作为结果返回给submit 事件;如果各字段都不为空,则将布尔值true 作为结果返回给submit 事件。
submit 事件接受返回的结果,如果返回的结果为true,浏览器将页面跳转到目标页面(本例中为target.asp);如果返回的结果为false,则浏览器取消加载目标页面的动作,而继续将浏览器焦点定位在原始页面中。
在浏览器事件和 HTML 元素事件中,事件处理器的返回值将直接影响其下一步的动作。
在实际应用中,经常在表单提交给服务器之前对其进行确认以检查通常的拼写错误或者非法的数据,极大减轻了服务器负担并充分保证其安全性,同时通过检查,提高用户提交数据的准确性。