需求:不能输入汉字,在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(/^0\d+?/.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>