Bonjour,
J'ai le problème (incompréhensible) suivant :
J'ai un champ de formulaire couplé à jquery.ui - autocomplete pour la recherche de code postal. Je souhaite que le visiteur ne puisse entrer que des chiffres, caractères donc interdits.
J'ai fais le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="./js/jquery.js"></script>
<script type="text/javascript" src="./js/jquery_ui/jquery.ui.core.min.js"></script>
<script type="text/javascript" src="./js/jquery_ui/jquery.ui.widget.min.js"></script>
<script type="text/javascript" src="./js/jquery_ui/jquery.ui.autocomplete.min.js"></script>
<script type="text/javascript">
function isInteger(n) {
    return n != "" && !isNaN(n) && Math.round(n) == n;
}
 
$(document).ready(function(){
    $('#ville').keyup(function() {
        var t = isInteger($('#ville').val());
        console.log(t);
 
        if (t == true) {
            $('#ville').autocomplete({
                source: './ajax/geo.php?step=20',
                minLength: 2,
                select: function(event, ui) {
                    console.log(ui);
                    $('#id_ville').val(ui.item.id);
                }
            });
        } else {
            console.log('erreur');
        }
    });
});
</script>
</head>
<body>
 
<form>
  <input type="hidden" name="id_ville" id="id_ville" value="0" />
  <input type="text" maxlength="5" id="ville" />
</form>
 
</body>
</html>
Quand je rentre des caractères :
- c'est ok, rien ne s'affiche au niveau de la liste des villes
- dans la console j'ai bien la valeur false qui apparait
- le message erreur apparait aussi

J'efface ensuite le champ pour entrer des nombres :
- là aussi c'est bon : la liste des villes s'affiche bien
- dans la console j'ai bien la valeur true qui apparait
- le message erreur n'apparait pas (normal)

Je test de nouveau des caractères :
- et là, pas bon : la liste des villes s'affiche pour les critères entrés dans le champ
- par contre dans la console j'ai bien la valeur false qui apparait
- le message erreur apparait aussi

Je précise que la page n'est pas rechargée entre chaque test

C'est là qu'est le problème, je ne vois pas trop pourquoi le code à la ligne 19 est exécuté !

Merci de votre aide.