2014-01-07 77 views
0

在PHP文本字段小數點之前輸入更多然後3個數字:從小數點 之前進入更然後3個數字例如防止用戶:防止用戶在javascript

如果用戶輸入123.12其上可接受的, 如果用戶輸入12.12也可以接受, 但是如果用戶輸入1234.12則不能接受。

只需選中此琴: http://jsfiddle.net/S6uky/


HTML:

<form method="post"> 
    <div class="row"> 
     <label>Val 1</label> 
     <input type="text" class="validate" name="val1" maxlength="5"/> 
    </div> 
    <div class="row"> 
     <label>Val 2</label> 
     <input type="text" class="validate" name="val2" maxlength="5" /> 
    </div> 
    <div class="row"> 
     <label>Val 3</label> 
     <input type="text" class="validate" name="val3" maxlength="5" /> 
    </div> 
    <div class="row"> 
     <button type="submit">Send</button> 
    </div> 
</form> 

JAVA SCRIPT:

$(function(){ 
    $('.validate').blur(function(){ 
     var reg=/^[0-9]{1}[0-9]{1}[\.]{1}[0-9]{1}[0-9]{1}$/g; 
     if($(this).val().match(reg)==null) 
      alert('Invalid input!'); 
              });}); 
+2

那麼,什麼是你的問題? – rccoros

+0

試試這個正則表達式:「\ d {0,3} [。] \ d + |^\ d {0,3} $」 – manta

回答

1
function isAccept(number){ 
    return number.indexOf('.') < 4; 
} 
1

試試這個代碼:

DEMO

$(function(){ 
     $('.validate').blur(function(){ 
     var reg=/^[0-9]{0,3}[.][0-9]{0,2}$/g; 
     console.log($(this).val().match(reg)); 
     if($(this).val().match(reg)==null) 
      alert('Invalid input!'); 
     else 
      alert('valid input!');   
              });}); 
0

嘗試用.test()這樣:

$(function() { 
    $('.validate').blur(function() { 
     var reg = /^[0-9]{0,3}[\.]{1}[0-9]{0,2}$/g; //<---updated this 
     if (!reg.test(this.value)) { 
      alert('Invalid input!'); 
      $(this).focus(); 
      return false; 
     } 
    }); 
}); 

Demo Fiddle

另一種方式是建立一個全球性的功能,並使用它作爲一個回調:

function isValidInput() { 
    var reg = /^[0-9]{0,3}[\.]{1}[0-9]{0,2}$/g; 
    if (!reg.test(this.value)) { 
     alert('Invalid input!'); 
     $(this).focus(); 
     return false; 
    } 
} 

$(function() { 
    $('.validate').blur(isValidInput); 
}); 

Another fiddle