使用HTML5(或者不太优选的JavaScript)是否可以将input
的最大长度限制为特定的字节数?
我意识到我可以限制到一些字符:
<input type="text" maxlength="4" />
但这还不够好,因为我最多可以在其中输入四个双字节字符。
显然,我正在验证这个服务器端,但我也想在浏览器端验证。
**编辑:**只是为了澄清,我希望能够支持UTF-8。对不起,@elclanrs。
使用HTML5(或者不太优选的JavaScript)是否可以将input
的最大长度限制为特定的字节数?
我意识到我可以限制到一些字符:
<input type="text" maxlength="4" />
但这还不够好,因为我最多可以在其中输入四个双字节字符。
显然,我正在验证这个服务器端,但我也想在浏览器端验证。
**编辑:**只是为了澄清,我希望能够支持UTF-8。对不起,@elclanrs。
4条答案
按热度按时间00jrzges1#
这个脚本有几个可以清理的小UX故障,但它确实完成了我在chrome中测试时概述的基本任务:
p8h8hvxi2#
在我自己的研究中,我认为这真的很好:
我从dandavis的答案开始,并不断改进以适应所有情况。我仍然不认为这是完美的,它仍然使用弃用的
onkeypress
处理程序,但没有什么比这更好的了。您可以删除更改
placeholder
的代码部分,说明文本太长无法粘贴(删除整个if
,仅保留e.preventDefault()
)。这只是我自己添加的东西,用来通知用户为什么在尝试粘贴内容后输入仍然是空的。这样他们就不会因为我写了错误的代码而责备我,我也不必回答一大堆的抱怨。sirbozc53#
创建一个返回字符串字节长度的函数,然后根据您的要求验证输入。
下面是一个返回字符串字节长度的示例:
Here's a fiddle,它有一个调用上面的函数来验证两个不同的文本输入的工作示例。
ymdaylpp4#
如果估计还不够好,我会过滤所有非单字节字符并计数。