这些对象由输入辅助行为创建,因此不适用于公共用途,即,您无法构造这些对象并进行使用。
以下描述概括了在掩码辅助适用于包含掩码字符串的输入字段时,如何处理击键、鼠标和剪贴板交互。
当该字段获得焦点时,将在每个空白标记位置(包括允许将空格作为值的位置)以及任何具有无效字符的位置插入提示字符。例如,如果掩码为“#-@@@@”,值为“A”,提示字符为“*”,则值将变成“A-****”。值中的保护字符保留不变。焦点将设置到值中用户可以进行输入的第一个字符位置。
当字段失去焦点时,将从该字段中除去提示字符。它可能被留在无效的状态。
注意,在 JWL 2.1 中更改了获得焦点/失去焦点处理的行为。onBlur 会在字段中留下一个不完整的值,例如,如果掩码是 ###-##-####,则当用户输入 151 并按 Tab 键时,将在字段中留下 151。在 V2.1 之前,如果用户返回到字段(触发了 onFocus),则值会由于无效而被清除。从 V2.1 开始,值不会被清除。注意,对行为所进行的此更改不会改变以下事实:由于值不完整而导致触发 onBlur 时,字段将被标记为无效。
当按下字母数字键,即,生成 keypress 事件时,如果所在位置允许此键值,也就是光标在输入位置处,并且此键值通过了正则表达式检测,则光标位置处的字符或提示字符将被覆盖,否则,所选项中的第一个字符将被覆盖,并且所选项中的剩余字符将设置为提示字符。然后,光标将前进到用户可以输入的下一位置或者字段的末尾。如果按下了无效的键,则“什么都不会发生”。注意,如果用户输入有效的“空格”字符,即,位置允许空格字符,则将显示提示字符,而不显示此空格。
当按下控制键,即,使用键控代码中指定的控制键生成了 keydown 事件时,掩码辅助将处理 keydown 事件上的控制键,这是 Windows® 中的标准。如果控制键是右箭头键,则光标将前进到字符串中可以进行输入的下一位置。如果按下了左箭头键,则光标将立即“向后”移到上一个可以进行输入的位置之后,因此,再次按下左箭头键之前,可能不能进行输入 - 这允许将光标定位在 Backspace 键将起作用的位置。如果按下了 Del 键,则将删除光标位置后面的字符,如果存在所选内容,则删除所选内容,并且光标会前进到下一位置。如果按下了 Backspace 键,则将删除光标位置前面的字符,并且光标会向后移。如果按下了 Tab 或 Enter 键,则将执行正常形式的处理操作。不会对任何其他控制键进行特殊处理,例如,不会对 HOME 和 END 键进行特殊处理,它们会按预期方式进行工作。
如果用户单击字段且并非是要进行选择,则光标将定位在用户可能输入的“下一个”字符之前。
仅 IE 可以处理剪切/复制/粘贴交互,Mozilla 不支持此类交互,而且在 IE 中只提供有限支持。虽然 IE 为管理交互提供了完整的事件集,但 IE 对剪贴板仅具有有限的访问权,因此限制了可以完成的操作。
“复制”将所选内容原样复制到剪贴板。“剪切”完成相同的操作,不过它会清除所选内容,即将所有输入位置设为空。在粘贴时,如果剪贴板上的值似乎为掩码字符串,则仅粘贴“输入”字符(非字面值)字符,否则将粘贴整个字符串。粘贴会将字符仅应用于“输入”位置而跳过字面值。如果有任何字符未通过输入验证,则将取消整个粘贴,否则光标将被放在所粘贴字符的末尾,虽然有时浏览器随后会移动光标位置。
掩码辅助不能处理使用 IME 构成的 DBCS 字符。虽然 IME 正被使用,但浏览器不能正确地生成键盘事件,例如,keypress。实际上,在调用 IME“完成”操作后,IME 的使用类似于其内容已被粘贴的剪贴板。但是,在浏览器中也不会提示“粘贴”这一操作。