Modifier un <input /> Javascript

Résolu/Fermé
PandaHugsU Messages postés 16 Date d'inscription vendredi 29 avril 2011 Statut Membre Dernière intervention 9 mai 2013 - 12 juil. 2012 à 14:31
PandaHugsU Messages postés 16 Date d'inscription vendredi 29 avril 2011 Statut Membre Dernière intervention 9 mai 2013 - 13 juil. 2012 à 09:35
Bonjour,

Eh bien voila mon problème (simplifié) j'ai une liste déroulante qui donne soit "Voiture" soit "2 roues".
Et je veux choisir avec un <input type='number'> le nombre de passagers dans le véhicule.
Vous l'aurez compris soit number vas de 1 a 5 pour la Voiture soit de 1 a 2 pour les 2 roues. Mais, j'arrive pas a modifier le max de l'input number ...

Mon code Javascript :

function passager_2roues(CECI){
if( CECI=='2 roues'){
document.getElementByID('passager').max = '2';
}else{
document.getElementByID('passager').max = '5';
}
}


Mon code HTML
<form name='formulaire' ....>

<p>Vehicule :
<select name='List1' onchange="passager_2roues(this.value)">
<option selected>Voiture</option>
<option selected>2 roues</option>
</select><br />
</p>

<p>Nombre de passagers :
<input type='number' step='1' min='1' max='5' id='passager' value='1' />
</p>
</form>

Voila c'est possible que j'ai fait des erreurs en simplifiant la syntaxe mais le problème ce n'est pas la syntaxe c'est que je ne sait pas comment appeler dans la fonction la variable max pour la modifier en fonction du choix de véhicule et surtout si c'est possible de le faire ...

En espérant avoir été assez clair ^_^.

Merci d'avance pour les réponses =)
Panda.

2 réponses

Utilisateur anonyme
12 juil. 2012 à 14:54
Bonjour

Tu as mal écrit getElementByID, c'est getElementById (avec un d minuscule)
Mais surtout, la propriété 'max' n'existe pas à ma connaissance, donc document.getElementById('passager').max = '2'; ne fait rien.
Si tu utilises un select aussi pour passager, tu peux peut-être le redéfinir en fonction du choix du véhicule
0
PandaHugsU Messages postés 16 Date d'inscription vendredi 29 avril 2011 Statut Membre Dernière intervention 9 mai 2013
12 juil. 2012 à 16:55
Yep pour le ID c'est une faute de frappe merci de l'avoir remarquer mais malheureusement c'était pas ça le problème.
La propriété 'max' de l'input type number existe belle et bien, elle modifier comme step='' et min='' , pour le pas et le début du menu number, mais je n'arrive pas a la modifié avec le script ...
Faire un seconde liste déroulante me plais moyennement estetiquement parlant sachant que j'en ai deja 3 assez longue et que pour seulement 5 chiffre ou 2 je trouvais ca bete ^_^.
Merci encore pour la réponse rapide.
0
En effet, je suis en retard d'une version de HTML. Mais je me soigne :D

J'ai ajouté un <div id='test'></div> dans la page et document.getElementById('test').innerHTML=document.getElementById('passager').max; à la fin de ton script. La propriété max a bien l'air d'être enregistrée dans javascript, mais elle est sans action sur le fait qu'on puisse ou non saisir un nombre en dehors des limites.
D'après http://www.w3schools.com/html5/att_input_max.asp, il n'y a que Chrome et Opera qui testent vraiment le dépassement du max. J'ai fait l'essai, je confirme pour Chrome (pas pendant la saisie mais au moment de valider le formulaire)
0
PandaHugsU Messages postés 16 Date d'inscription vendredi 29 avril 2011 Statut Membre Dernière intervention 9 mai 2013
13 juil. 2012 à 09:35
Mais alors la vas savoir pourquoi je relance mon programme ce matin et ca marche !!! Avec ce que j'avais posté dans mon message principal ...

Bon je touche plus a rien la solution c'est :

function passager_2roues(CECI){
if( CECI=='2 roues'){
document.getElementById('passager').max = '2';
}else{
document.getElementById('passager').max = '5';
}
}

Pour le javascript il arrive a pointé la propriété "max" et change sa valeur.

Merci tout de même de t'être penché sur la question =).
A+ sur le forum.
0