【问题标题】:Failed to execute 'setSelectionRange' on 'HTMLInputElement'无法在“HTMLInputElement”上执行“setSelectionRange”
【发布时间】:2014-05-25 14:18:15
【问题描述】:

Chrome(版本 33 =>)和其他 webkit 浏览器中的一个简单的“数字”输入字段出现以下错误

<input type="number" name="number">

在“HTMLInputElement”上执行“setSelectionRange”失败:输入 元素的类型('number')不支持选择。

我在 FF 和 IE (10=>) 中测试并且运行良好

我在 chromium 项目中发现了以下问题: https://code.google.com/p/chromium/issues/detail?id=346270

有什么想法吗?

谢谢!

【问题讨论】:

    标签: google-chrome webkit numbers


    【解决方案1】:

    是的,这是一个 webkit 错误,试试这个解决方案:

    Jsfiddle demo

    代码:

        <div class="container">
            <form role="form">
              <div class="form-group">
                <label for="tel">tel</label>
                  <input type="tel" class="form-control" id="tel" placeholder="tel"/>
              </div>
            </form>
        </div>
    
        <script>
        $("#tel").mask("(99) 999-9999");
    
        $("#tel").on("blur", function() {
            var last = $(this).val().substr( $(this).val().indexOf("-") + 1 );
    
            if( last.length == 3 ) {
                var move = $(this).val().substr( $(this).val().indexOf("-") - 1, 1 );
                var lastfour = move + last;
                var first = $(this).val().substr( 0, 9 );
    
                $(this).val( first + '-' + lastfour );
            }
        });
        </script>
    

    【讨论】:

    • 不仅仅是一个错误,它是一个有目的的特征匹配规范:(
    猜你喜欢
    • 2016-01-29
    • 1970-01-01
    • 2021-06-26
    • 2018-10-02
    • 1970-01-01
    • 2019-09-23
    • 2019-05-27
    • 2020-03-08
    • 2020-07-05
    相关资源
    最近更新 更多