Javascript 如何在启用触摸功能的浏览器中选择输入值?
问题 Safari不符合标准文本框/输入约束。 maxlength和javascript select()均未按预期输出Javascript 如何在启用触摸功能的浏览器中选择输入值?,javascript,jquery,ipad,safari,touch,Javascript,Jquery,Ipad,Safari,Touch,问题 Safari不符合标准文本框/输入约束。 maxlength和javascript select()均未按预期输出 <input type="text" value="12345" maxlength="5" onFocus="this.select();"> 经过一些广泛的测试,我发现了以下几点: 仅当输入类型为数字时,“最大长度”才会失败 无论是onFocus还是onClick都无法在带有 狩猎之旅 OnClick适用于Android触摸浏览器,而onFocus不适
<input type="text" value="12345" maxlength="5" onFocus="this.select();">
经过一些广泛的测试,我发现了以下几点:
- 仅当输入类型为数字时,“最大长度”才会失败
- 无论是onFocus还是onClick都无法在带有 狩猎之旅
- OnClick适用于Android触摸浏览器,而onFocus不适用
选择在焦点上不起作用,请尝试使用
onClick=“this.Select();”
查看此小提琴:最大长度 最大长度将限制允许的字符数 Safari在使用type=“number”
MAX 使用type=“number”时,建议使用min和max创建值范围 Safari不支持min和max值
目前,我建议结合max和maxlength以实现最大兼容性:
<input class="Max" type="number" value="12345" maxlength="5" min="0" max="99999">
REGEX
允许任何字符
\d
替换为\d以仅允许数字
{0,5}
0是最小长度,5是最大长度。感谢您的输入。测试后,当使用非触摸设备时,onFocus比onClick工作得更好,因为它允许在从非点击事件(如javascript选项卡)应用焦点时选择值。使用touch浏览器时OnFocus失败,但在Safari中使用touch时,使用onClick不会选择输入值。
$(".Max").keyup(function() {
$(".Max").val(this.value.match(/^.{0,5}$/));
});