2010-03-10 4 views
0

Fondamentalement, je ne veux pas que l'utilisateur entre '0' (zéro) comme le premier caractère dans une zone de texte qui représente des données avec le type d'entier?Comment ignorer le premier caractère entré à zéro dans une zone de texte avec jQuery

Je voudrais lier un gestionnaire d'événements pour gérer cela avec jQuery.

Une expérience quelconque?

Merci,

+0

Est-ce que vous souhaitez éviter l'action lors de la saisie au clavier, ou "réparer" le texte une fois qu'il est présenté (lors de la validation)? –

Répondre

1

Vous pouvez simplement remplacer simplement sur le keyup comme ceci:

$('#test').keyup(function() { 
    if ($(this).val() === '0') 
    { 
     $(this).val(''); 
    }  
}); 
+0

Ne serait pas 'si ($ (this) .val() == '0') $ (this) .val ('');' être plus facile? :) –

+0

Oui, ça le rend encore plus facile. J'ai été pris dans les arguments de l'événement keyup. J'ai édité la réponse, merci. – ryanulit

0

vous pouvez utiliser somthing comme $('textbox').val().substr(0,1) != 0; Bien qu'il serait mieux si nous savions ce que vous voulez accomplir

2

Vous pouvez remplacer la valeur avec la valeur entière si vous voulez:

$(".IntegerInput").val(function(i, v) { 
    return parseInt(v, 10); 
}); 

Ce analysera l'int et remplacez la valeur avec elle, enlever les 0 principaux.

Romuald fait une prise de dieu, pour votre cas, vous aurez besoin de l'argument radix sur parseInt()

+1

Ne fonctionnera pas comme prévu. Par exemple 'parseInt ('0100')' renvoie 64. Il suffit d'utiliser 'parseInt (v, 10)' et il fonctionnera bien –

+0

@Romuald - Bonne prise, ne pensait pas à ce sujet par défaut menant 0 à un différent base, mise à jour –

Questions connexes