2016-11-15 99 views
-3

我要檢查如果用戶輸入的值是使用jQuery檢查輸入的值是一個有效的整數

有效的整數我已經試過這個代碼,但它似乎總是返回真正

if ((manageridEntered === "") || ($.isNumeric(manageridEntered))) { 
    success = false; 
} 
+5

你見過在https://api.jquery.com/jQuery.isNumeric/的文檔?它指出:「[...] $ .isNumeric()只有在參數是數字類型的情況下才返回true,或者如果它是string類型的,並且它可以被強制爲有限數字,則返回true。 – gus27

回答

3

無需使用jquery

您可以使用javascriptisNaN()

isNaN()接受小數也

return !isNaN(manageridEntered)) 

可使用普通javascriptregex這裏只匹配數字

return new RegExp('^\\d+$').test(manageridEntered)) 
+0

使用'isNaN'的方法也會爲浮點數返回true。 – str

+0

@str謝謝。我更新了這個。 –

1

請試試這個:

if(Math.floor(manageridEntered) == manageridEntered && $.isNumeric(manageridEntered)){ 
    //code here 
} 
0

使用正則表達式,你可以實現它看到下面的代碼

$(document).ready(function() { 
 
      $("#button").on("click", function() { 
 

 
       var patt = new RegExp("^[0-9]*$"); 
 
       if (patt.test($("#number").val())) { 
 
        alert("true") 
 
       } else { 
 
        alert("false") 
 
       } 
 
      }); 
 

 
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<input type="text" id="number" /> 
 
<input type="button" id="button" value="Check"/>

+0

我已經使用這種方法,但它仍然沒有選擇我的輸入作爲有效的數字 – user1483145

+0

@ user1483145可能是你想念的東西,你可以看到上面的代碼片段工作正常 – Bharat

2

採取

var intRegex = /^\d+$/; 
var floatRegex = /^((\d+(\.\d *)?)|((\d*\.)?\d+))$/; 

var str = $('#myTextBox').val(); 
if(intRegex.test(str) || floatRegex.test(str)) { 
    alert('I am a number'); 

} 

例如,你可以使用經典的JavaScript:

var isNumber = Number.isInteger(yournumber); 

或者,如果您要檢查,如果它不是(不使用!):

var isNaN = Number.isNaN(yournumber); 

console.log(Number.isInteger(0.1));  // false 
 
console.log(Number.isInteger(1));   // true 
 
console.log(Number.isInteger(-100000)); // true 
 
console.log(Number.isInteger(Math.PI)); // false 
 
console.log(Number.isInteger(-Infinity)); // false 
 
console.log(Number.isInteger(true));  // false 
 
console.log(Number.isInteger(NaN));  // false 
 
console.log(Number.isInteger(0));   // true 
 
console.log(Number.isInteger("10"));  // false

1

您可以使用JavaScript的香草:

success = !manageridEntered.length || parseInt(manageridEntered) == manageridEntered; 
1

isNumeric正在檢查一個數字(也可以用一個字符串包裝),而不是一個整數。除此之外,isNumeric()不是總是返回true,您可以在以下代碼片段中看到使用JQuery 2.1.1

console.log($.isNumeric('a')); // false 
 
console.log($.isNumeric('1')); // true 
 
console.log($.isNumeric(1));  // true 
 
console.log($.isNumeric(1.5)); // true 
 
console.log($.isNumeric('1.5')); // true
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

1

$('.submitBtn').click(function() { 
 
    var Number = $('#Number').val(); 
 
if ((Number === "") || ($.isNumeric(Number))) { 
 
    alert('Valid NUmber'); 
 
}else{ 
 
    alert('Not Valid NUmber'); 
 
} 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
<form method="post" action=""> 
 
    Inateger Value: <input type="text" name="Number" id="Number" /> 
 
    <input type="submit" value="Submit" class="submitBtn"> 
 
</form>

相關問題