input-text

需求:不能输入汉字,在input的type为text时,jQuery的val值是可以获取到的,这时可以利用keyup事件,当获取到的值为非数字时,直接将输入框清空,这样可以实现禁止输入汉字之类的非法字符

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <meta name="viewport"
          content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
    <meta name="format-detection" content="telephone=no">
    <script src="jquery-3.2.1.js"></script>
</head>
<body>
    <input type="text" placeholder="自定义" class="user-define-money" id="define-money" />
    <button class="btn-test">test</button>
    <script>
     $("#define-money").keyup(function(){
         $("input").css("background-color","pink");
         if(isNaN($('.user-define-money').val())){
             $('.user-define-money').val("");
         }
     });
        $(".btn-test").on('click',function(e){
            console.log($('.user-define-money').val())
            console.log($('.user-define-money')[0].value);
            var userValue =$('.user-define-money').val();
            if(userValue ==""){
                if($('.user-define-money')[0].validationMessage){
                    alert("格式不正确");
                    $('.user-define-money').val("");
                    return ;
                }else{
                    alert("不能为空");
                    $('.user-define-money').val("");
                    return ;
                }
            }
            if(/^d+(.)?$/.test(userValue)){
                userValue = userValue.split(".")[0];
            }
            if(/^0d+?/.test(userValue)){
                alert("格式不正确");
                $('.user-define-money').val("");
                return ;
            }
            if(userValue==''||userValue==undefined){
                alert("不能为空");
                return;
            }else if(isNaN(userValue)||userValue==0){
                alert("格式不正确");
                $('.user-define-money').val("");
                return ;
            } else if(checkUserDefined(userValue)){
                money = userValue;
            }else{
                alert("格式不正确");
                $('.user-define-money').val("");
                return ;
            }
        })
        function checkUserDefined(value){
            if(!isNaN(value) && /^d+(.d{1,2}|.)?$/.test(value)){
                //这里的判断是控制非数字和小数点最多两位的
                if(value.indexOf(".")==-1 && value.length<9){
                    //这里的判断是输入没有小数点且长度最大为8,符合条件
                    return true;
                }else if(value.indexOf(".")!==-1 && value.length<=9){
                    //这里的判断是输入有小数点且长度最大为8,符合条件
                    return true;
                }else{
                    //剩下的就是不符合条件
                    return false;
                }
            }else{
                //这里也是不符合条件
                return false;
            }
        }
    </script>
</body>
</html>
原文地址:https://www.cnblogs.com/haimengqingyuan/p/8570334.html