zoukankan      html  css  js  c++  java
  • JavaScript+vue:自定义指令禁止表单输入非整数

    input type="text" 没改成number,造成正则验证在英文输入法下失效...
    嗯,再次被自己蠢哭。
    html:
                  <!--<input type="number" min="0" max="10">-->
                  <button style="padding:1px 4px" @click="amountChange(item, -1)">-</button>
                    <input id="index" type="number" v-model="item.counter" v-number-only min="1" max="10">
                    <!--<input type="text" v-model="item.counter" @input="formatCounter">-->
                    <button style="padding:1px 4px" @click="amountChange(item, 1)">+</button>
    directives: {
            numberOnly: {
                bind: function(el) {
                    el.handler = function() {
                        var formatVal = /^+?[1-9][0-9]*$/;
                        var val = el.value;
                        if(!formatVal.test(val)){
                            var reg = new RegExp(val,'g');
                            el.value = val.replace(reg, 1);
                        }
                    }
                    el.addEventListener('input', el.handler)
                },
                unbind: function(el) {
                    el.removeEventListener('input', el.handler)
                }
            }
        },

     以上其实还有一个问题,待补充。。。忙死本宝宝了

    如果直接用JavaScript写,可能对用户体验来说,不够友好。

    不用 vue 指令的版本如下:

    <input type="number" value="" id="1" onkeyup="initNum(this.id)">
    <script>
    
        function initNum(id) {
            var val = document.getElementById(id).value;
            var formatVal = /^+?[1-9][0-9]*$/;
            if(!formatVal.test(val)){
                var reg = new RegExp(val,'g');
                document.getElementById(id).value = val.replace(reg, '1');
            }
        }
    
    </script>

    用户如果输错,输入了字母,那么,无法用backspace键删除。只能用鼠标选中,再改数字。

  • 相关阅读:
    演义江湖PC端意见汇总
    演义江湖移动端内存优化意见汇总
    BitmapData类介绍
    我的职业规划_2013-7-29
    总结调用Flash的几种方法
    Pycharm注册
    删除表
    读取url中某个值
    Pycharm常用快捷键
    pip3使用
  • 原文地址:https://www.cnblogs.com/dodocie/p/7747087.html
Copyright © 2011-2022 走看看