我写了一个键盘功能来检查长度和消息超长,我正在编辑它以确保它达到5位数,所以输入框退出时少于5位警报。我有一个onblurr并且它正在工作但是如果我单击该字段(不做任何更改空格或任何内容并退出我得到错误字段0错误。有人可以建议更好的方法
$.fn.moRate = function (myLength) {
fieldVal=$(this).val();
return this.each(function () {
$(this).keyup(function() {
fieldValue=$(this).val();
if ( !/^[0-9][.]+$/.test($(this).val()) ) {
$(this).val($(this).val().replace(/[^0-9][.]/g, ''));
}
if (fieldValue.length>myLength )
{
this.value=fieldValue.substr(0,myLength);
var myThis=$(this).attr('id');
moAlert('Number Only Field','You have reached the field length: '+myLength,$(this))
}
});
$(this).blur(function(){
if ($(this).val()==='')
{ $(this).val(fieldVal)}
if (fieldValue.length!=5){alert('Rate must be 5 digits including decimal')}
});
});
};
};
答案 0 :(得分:0)
您可以将required
属性,pattern
属性与RegExp
\d+\.\d+|\.\d+
,maxlength
属性设置为6
,css
一起使用:focus
,:invalid
伪选择器和title
属性,用于在输入无效时显示消息
input:focus:invalid + [for="input"]:after {
content: "Rate must be 5 digits including decimal";
color: red;
}
<form>
<input id="input"
type="text"
pattern="\d+\.\d+|\.\d+"
maxlength="6"
title="Required input: five digits including a decimal"
required /><label for="input"></label><br>
<input type="submit" />
</form>