Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在启用触摸功能的浏览器中选择输入值?_Javascript_Jquery_Ipad_Safari_Touch - Fatal编程技术网

Javascript 如何在启用触摸功能的浏览器中选择输入值?

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不适

问题

Safari不符合标准文本框/输入约束。 maxlength和javascript select()均未按预期输出

<input type="text" value="12345" maxlength="5" onFocus="this.select();">

经过一些广泛的测试,我发现了以下几点:

  • 仅当输入类型为数字时,“最大长度”才会失败
  • 无论是onFocus还是onClick都无法在带有 狩猎之旅
  • OnClick适用于Android触摸浏览器,而onFocus不适用
问题

在触摸设备上使用safari时:

  • 应用焦点时如何选择输入值

  • 当类型为number时,如何限制输入值的字符数

  • (我的测试设备是ipad,所以问题可能是触摸输入,我还没有在非触摸safari浏览器上测试过。)

    小提琴


    选择在焦点上不起作用,请尝试使用
    onClick=“this.Select();”


    查看此小提琴:

    最大长度

    最大长度将限制允许的字符数

    Safari在使用type=“number”


    MAX

    使用type=“number”时,建议使用minmax创建值范围

    Safari不支持minmax


    目前,我建议结合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}$/));
    });