谢谢你的报告。
我可以发现两个问题:
minLength="3"
而不是 8。minLength
: https : 我使用的是 mac os 10.14.6 和浏览器 Safari 13.0.5 (14608.5.12)
我忘了一些东西,切换后不要输入任何字符
顺便说一句,当我尝试使用 Chrome 86.0.4240.183 时它工作正常。 我认为它只发生在野生动物园
谢谢,我可以重现这个。
通常,如果输入是原始的,则任何验证都会被忽略。 如果您提交表单而不输入任何内容, minLength
被忽略。
如果您输入的内容未通过所有约束,Safari 会将表单正确标记为无效。 但是,当type
更改时,Safari 似乎认为输入是原始的。 因此,如果键入完成后type
发生更改,则提交无效值。
问题是 React 是否可以或应该解决这个问题,或者 Safari 是否应该解决这个问题。
编辑:
没有任何反应的最小重现: https ://codesandbox.io/s/condescending-bhabha-n4374?file
如果您需要这种行为,我建议向 Safari 提交错误。
最有用的评论
谢谢,我可以重现这个。
通常,如果输入是原始的,则任何验证都会被忽略。 如果您提交表单而不输入任何内容,
minLength
被忽略。如果您输入的内容未通过所有约束,Safari 会将表单正确标记为无效。 但是,当
type
更改时,Safari 似乎认为输入是原始的。 因此,如果键入完成后type
发生更改,则提交无效值。问题是 React 是否可以或应该解决这个问题,或者 Safari 是否应该解决这个问题。
编辑:
没有任何反应的最小重现: https ://codesandbox.io/s/condescending-bhabha-n4374?file
如果您需要这种行为,我建议向 Safari 提交错误。