需要在退出keyup函数时检查长度

时间:2016-04-05 16:18:04

标签: javascript jquery

我写了一个键盘功能来检查长度和消息超长,我正在编辑它以确保它达到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')}


 });
 });

 }; 


 }; 

1 个答案:

答案 0 :(得分:0)

您可以将required属性,pattern属性与RegExp \d+\.\d+|\.\d+maxlength属性设置为6css一起使用: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>