VBS文档对象模型

2026/4/24 4:43:23

则将焦点重新设置到number文本框中,那么在该文本框中根本就不可能输入不合法的数据,否则文本框就不能失去焦点,当然也就不可能提交表单数据了。

(2)OnChange

OnChange事件和OnBlur事件相似,都要在失去焦点之后触发,不同之处在于,只有当用户修改了文本框中的文本,然后失去焦点后才触发,如果用户没有修改文本,失去焦点 时是不会触发OnChange事件的,同样可以在OnChange事件处理函数中进行数据有效性验证,在例3-49可以进行如下修改:

和OnBlur不同,在OnChange事件处理函数中进行校验不会把焦点强制定于该文本框 中,如果在number文本框中输入了不合法的数据,出现警告对话框后会将焦点重新设置到number文本框中,此时如果不进行任何改动,可以将焦点移动到其他表单元素上而不再次触发OnChange事件处理函数。

建议不要使用OnBlur事件处理函数中进行数据有效性验证,而是使用OnChange事件处理函数中进行验证,然后在表单提交时再进行一次验证,这样可以给予用户较大的自由。

(3)OnFocus

当文本框得到焦点时,触发OnFocus事件。 (4)OnSelect

当文本框中文本被选定时,触发OnSelect事件。 (5)OnKeyDown

文本框在获得焦点的状态下,用户按下一个键时触发OnKeyDown事件。 (6)OnKeyUp

文本框在获得焦点的状态下,用户松开一个键时触发OnKeyup事件。 (7)OnKeyPress

文本框在获得焦点的状态下,用户按键动作完成之后出发OnKeyPress事件,所以在用户按键的过程中先触发OnKeyDown事件,然后触发OnKeyUp事件,在OnKeyDown事件和OnKeyUp事件匹配完成之后触发OnKeyPress事件。

这样,就可以修改例3-49,在例3-49中的校验方式是对于输入文本进行校验,这是一种被动的校验方式,其实可以考虑采用一种更加主动的校验方式,通过编写OnKeyPress事件处理函数后,可以保证在文本框中只能输入数字,而屏蔽了其他按键,这样同样保证了在number文本框中只能输入数字。如例3-50所示(该例使用了多个事件,建议读者将其分开一个一个测试)。

请输入非负数字

ACTION=\请输入非负的数字

onfocus=\onkeypress=\

例3-50 通过屏蔽非数字按键主动进行校验

5.口令对象

口令对象和文本框对象十分相似,不同之处只在于在口令对象中,输入文本不会直接显示出来,而是以星号代替。它的属性、方法与事件和文本框对象是一致的。不过,它的type

属性值为password。

6.文本区对象

虽然文本区对象和文本框对象在HTML格式上有较大的差异(文本区对象使用