自定义JavaScript控件无法捕捉表单字段的细微差别(2021年)

2022-02-25 07:53:04

这是一个持续的过程,是一个持续的过程。Eos aspernatur和laboriosam quam numquam quo。这是我的荣幸。多洛·波罗和多洛雷姆·奎斯夸姆·托塔姆·夸伊坐在一起。这是一个值得尊敬的人物。沃鲁帕特斯在韦尔基奎埃拉特。这是我最喜欢的。Odio aut aut voluptate qui voluptatem。这是一个很好的习惯。这是我的荣幸。这是一种苦艾酒。圣约翰岛。

以下是在我的操作系统(Linux)和网络浏览器(Firefox)上使用此文本框的一些细微差别:

双击选择一个单词,三次单击选择整行。如果双击或三下并按住,我可以拖动鼠标以按单词或行展开所选内容,而不仅仅是按字符展开。这也适用于本文正文中的文本段落。

按住control键并向右按将在文件中逐字移动。它总是移动到下一个或上一个单词的开头或结尾,因此按“control+left,control+left,control+right”将以与单独按“control+left”不同的位置结束。向其中任何一个添加“shift”都会改变文本选择。

单击文本结尾后的任何空格都会将光标放在最后一个字符之后,即使单击最后一个字符的左侧。这样就很容易开始在末尾添加文本。

单击并从任意点拖动鼠标,我可以直接向上拖动鼠标,超过文本框的边界,甚至超过整个web浏览器的边界,以选择从该点到文本框开始的所有文本。(感谢您对这一点的关注)

选择文本并在任意位置单击鼠标中键将文本粘贴到单击的位置。这使用了一个与使用ctrl+c/ctrl+v访问的剪贴板不同的单独剪贴板。我还可以使用shift+insert从第二个剪贴板粘贴文本(这称为“主选择”)。

当我在日常生活中使用表单控件时,我依赖于所有这些细微差别。顺便说一句,这只是为了英语。我经常输入日语,日语有着完全不同的细微差别。以下是Android上的情况(移动设备也完全是另一种野兽!):

有一个不可见的编辑缓冲区,所以我可以键入“Pennsylvania”(或P)来选择我想要的内容。我可以键入“New”,然后按下选择“New Jersey”。如果我犯了一个错误,并且我一直在跟踪我在脑海中键入的内容,我可以使用Backspace进行更正,而且它很有效。我在这两个地方都住过,并且把这两次击键都记进了我的肌肉记忆中。在表格上填上我的地址,然后用这样的输入框来选择我的居住状态,只需要不到一秒钟的时间。

你无法在一个自制的表单控件中捕捉到所有这些细微差别,甚至任何与之相近的东西,但许多JavaScript程序员无论如何都会这样做。每当我对自定义表单控件进行计数时,完成表单所需的时间就会从不到一秒增加到一分钟。

对我自己来说,这很烦人。想象一下同样的情况,如果你是林德。标准表单输入在任何地方都可以使用,并且在设计时考虑到了可访问性,因此您已经习惯了它们,并且可以使用标准浏览器控件轻松填写表单。但是,当你点击一个JavaScript支持的有机无框架非转基因文本框时,你就完蛋了。

用户学习如何高效地使用电脑有数百个细微差别。用户依赖的确切功能因操作系统、浏览器、硬件、自然语言、身体能力以及个人偏好和体验而异。有几十个人们每天都依赖的小工作流,你甚至从未想到过。

用JavaScript制作自定义表单控件会让很多人的生活变得更糟。别这么做。浏览器的内置控件非常有效。