无法检测输入中的前导空格和尾随空格



在Chrome 86中,无论出于何种原因,JS似乎都无法检测从input事件上的input[type=email]元素派生的用户输入中的前导空格和尾随空格。我测试了多种检测此类空间的方法(例如Str.includes(' ')/s/.test(str)等(,但都不起作用。

有人知道变通办法吗?

类型email的输入与类型text的输入不同。有一些输入自动验证,以确保值的格式正确。

在提交表单之前,会自动验证输入值,以确保其为空或格式正确的电子邮件地址(或地址列表(。

来自MDN

我想这就是为什么空间得到";移除";根据您正在测试的价值。有3种可能的值格式:

  • 空字符串
  • 一个格式正确的电子邮件地址
  • 昏迷分隔的电子邮件地址列表

伪类:valid:invalid自动应用于输入,您可以将它们用于样式和逻辑。

document.querySelectorAll("input[type='email']:valid").forEach(field=>{
console.log(field.value + " is valid" )
})
document.querySelectorAll("input[type='email']:invalid").forEach(field=>{
console.log(field.value + " is invalid" )
})
input:valid{
background: green
}
input:invalid{
background: red
}
<input type="email" value="abcdef"/><br>
<input type="email" value="someone@somesite.com"/><br>
<input type="email" value=""/><br>
<input type="email" value="someone@somesite"/>

请注意,空字段被视为有效以及没有TLD的电子邮件地址。。。

相关内容

  • 没有找到相关文章

最新更新