5.1.3 表单事件
在JavaScript出现以前,人们主要通过利用HTML创建的表单来和Web站点交互。在表单字段输入信息确实是访问者向Web站点提供输入的唯一一种方式。由于表单仍然是Web的一个重要部分,因此可以发现有很多表单事件可供使用。
·submit。当访问者提交一个表单的时候,submit事件触发。可以通过单击Submit按钮来提交表单,或者当光标在一个文本字段中的时候直接按回车键来提交。我们将会经常使用带有表单验证的submit事件,在数据发送给Web服务器之前,确保所需的字段都正确填写了。我们将在9.4节学习如何验证表单。
·reset。Reset按钮允许撤销已经对表单所做的任何改变(尽管这和它们通常的用法不一样)。它把页面载入时的表单状态返回给表单。当访问者试图通过reset事件来重置表单的时候,可以运行一段脚本。例如,如果访问者已经对表单做出一些修改,我们可能希望弹出一个对话框并询问“Are you sure you want to delete your changes?”。这个对话框给了访问者一个机会来单击“No”按钮并防止重置(擦除)表单的过程。
·change。很多表单字段在它们的状态发生变化的时候触发一个change事件,例如,当某人单击一个单选按钮,或者从一个下拉菜单做出选择的时候。可以使用这个事件来立即检查在菜单中做出的选择,或者哪个单选按钮选中。
·focus。当跳转到或单击一个文本字段,该字段就会得到焦点。换句话说,浏览器的注意力现在聚焦在该页面元素上。同样,选择一个单选按钮或者单击一个复选框,都会给这些元素提供焦点。可以使用JavaScript来响应focus事件。例如,可以在一个文本字段中添加一条有用的说明:“Type your full name.”。当访问者在字段中单击(给它焦点),可以擦除这些说明,因此会留下一个空白字段供填充。
·blur。blur事件和focus事件相反。当退出一个当前聚焦的字段时,要么跳转到字段之外,要么单击字段之外,就会触发该事件。blur事件的另一个用武之地就是表单验证。例如,当某人在一个文本字段输入其E-mail地址,然后跳转到下一个字段,可以立即检查输入的内容以确保这是一个有效的E-mail地址。
注意:focus和blur事件也适用于页面上的链接。当跳转到一个链接时会触发一个focus事件,当从链接跳走(或者单击离开)时会触发blur事件。