J'ai un simple textbox
dans lequel les utilisateurs entrent le numéro .
Est-ce que jQuery a une fonction isDigit
qui me permettra d’afficher un message d’alerte si les utilisateurs entrent autre chose que des chiffres?
Le champ peut aussi avoir des points décimaux.
Je suggérerais d'utiliser des expressions rationnelles:
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');
...
}
Ou avec un regex unique selon la suggestion de @Platinum Azure:
var numberRegex = /^[+-]?\d+(\.\d+)?([eE][+-]?\d+)?$/;
var str = $('#myTextBox').val();
if(numberRegex.test(str)) {
alert('I am a number');
...
}
Oubliez les expressions régulières. JavaScript a une fonction intégrée pour cela: isNaN()
:
isNaN(123) // false
isNaN(-1.23) // false
isNaN(5-2) // false
isNaN(0) // false
isNaN("100") // false
isNaN("Hello") // true
isNaN("2005/12/12") // true
Appelez-le comme ceci:
if (isNaN( $("#whatever").val() )) {
// It isn't a number
} else {
// It is a number
}
il existe un moyen plus simple de vérifier si une variable est un entier. vous pouvez utiliser la fonction $ .isNumeric (). par exemple.
$.isNumeric( 10 ); // true
cela retournera true mais si vous mettez une chaîne à la place du 10, vous obtiendrez false.
J'espère que cela fonctionne pour vous.
Le script suivant peut être utilisé pour vérifier si la valeur est un entier valide ou non.
function myFunction() {
var a = parseInt("10000000");
if (!isNaN(a) && a <= 2147483647 && a >= -2147483647){
alert("is integer");
} else {
alert("not integer");
}
}
Avec jQuery's validation plugin, vous pouvez faire quelque chose comme ceci, en supposant que le formulaire s'appelle form et que la valeur à valider s'appelle nrInput.
$("form").validate({
errorElement: "div",
errorClass: "error-highlight",
onblur: true,
onsubmit: true,
focusInvalid: true,
rules:{
'nrInput': {
number: true,
required: true
}
});
Cela gère également les valeurs décimales.
var yourfield = $('fieldname').val();
if($.isNumeric(yourfield)) {
console.log('IM A NUMBER');
} else {
console.log('not a number');
}
JQUERY DOCS:
La validation des valeurs ne serait pas une responsabilité de jQuery. Vous pouvez utiliser du JavaScript pur pour cela. Deux façons qui me viennent à l’esprit sont:
/^\d+$/.match(value)
Number(value) == value
String.prototype.isNumeric = function() {
var s = this.replace(',', '.').replace(/\s+/g, '');
return s == 0 || (s/s);
}
usage
'9.1'.isNumeric() -> 1
'0xabc'.isNumeric() -> 1
'10,1'.isNumeric() -> 1
'str'.isNumeric() -> NaN
$(document).ready(function () {
$("#cust_Zip").keypress(function (e) {
//var z = document.createUserForm.cust_mobile1.value;
//alert(z);
if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
$("#errmsgzip").html("Digits Only.").show().fadeOut(3000);
return false;
}
});
});
jQuery est un ensemble de fonctions JavaScript, non? Vous pouvez donc utiliser le support des expressions régulières de JavaScript pour valider la chaîne. Vous pouvez également mettre cela dans un callback jQuery, car ceux-ci prennent juste des corps de fonctions déclarés anonymement et les fonctions sont toujours JavaScript.