我有一个简单的表单,其中包含一个<input>
用于填写电子邮件地址,如果用户决定这样做,即该字段不是强制性的。我还使用type="email"
属性,因为它有助于自动完成,并且它对智能手机用户特别有益 - 它会导致键盘重新排列以便于电子邮件输入。浏览器自动验证一个非空值的非必填字段
但是,也有一些用户没有像高级移动设备那样在输入@
符号时可能会遇到一些困难。此外,还有一些桌面用户无法输入;我亲自认识一些人,我认为还有更多。对于这些用户,我将<input>
的初始值设置为@
。我会强调这不是占位符。
但现在这两件事情冲突。由type="email"
激活的浏览器本机表单验证机制现在阻止了表单提交,因为他们不了解该字段不是强制性的,并且我不介意发送@
作为值的用户。
有没有办法告诉浏览器验证字段只有当的值不是@
或空字符串?很明显,使用javascript创建我自己的验证器真的很容易,但我不想诉诸于此。
或者我的前提是用户无法输入@
标志为假,我可以通过简单地将<input>
空置于第一位来解决此问题?有没有关于此事的研究?我仍然偶尔会看到最近在各种技术论坛上绝望的用户投诉,我想大多数类似的没有经验的用户不会去网上询问,也许是因为他们甚至不知道如何去做。
还是应该用旧的type="text"
?
你认为我应该怎么做?
预先感谢您!
我不知道你的用户组,但总的来说,我认为人们知道电子邮件地址,至少知道如何编写这些地址。另外,如果你看看Facebook这样的网站,有1110亿用户,并且在电子邮件文本框中没有“@”号,似乎人们可以处理它。 - 再次检查你的用户组,可能与facebook非常不同,并自己回答这个问题。另外,如果有人不知道如何写“@”,那么这个人很可能首先不会有电子邮件地址。 – peter