Rechercher : dans
Par :

Javascript pour rendre un champ non saisissab

Dernière réponse le 25 déc 2007 à 17:33:33 michelB, le 25 déc 2007 à 15:06:26 
 Signaler ce message aux modérateurs

Bonjour,

Je m'éclate la tête à essayer de comprendre. Je débute en Javascript et c'est pourtant quelquechose qui semble facile.
J'ai créé un formulaire comportant
- un champ select comprenant plusieurs options.
- un champ text dont je voudrais qu'à l'ouverture du formulaire il soit non saisissable.

Je voudrais que le champ text devienne saisissable lorsque le champ select prend l'option 2 par exemple et qu'il reste non saisissable pour toutes les autres valeurs du champ select.

Comment faire ?

Merci de votre aide

Configuration: Mac OS X
Safari 523.12

1

coco11, le 25 déc 2007 à 15:17:53

Salut ,

Bon moi aussi je debute en javascript mais je peux toujours essayer !
Si tu utilise une boitetext pour afficher ton texte dans ton formulaire , pour qu elle soit desactivée , il te suffit de rajouter l attribut disable=disable ( ou "disable" ) , dans ta balise input , ensuite , dans ton javascript , tu n auras plus qu a indiquer au moment voulue : disable = " " ( ou la valeur par defaut de l attribut disable )

J espere avoir repondu a ta question sur ce joyeux noel

Répondre à coco11

2

Gihef, le 25 déc 2007 à 16:14:04
  • +1

Bonjour,

En me basant sur un exemple trouvé chez w3schools, j'ai bricolé ce script qui désactive l'<input> au chargement de la page et permet de le remplir (ici, ça ajoute les choix) si quelque chose est choisi dans la liste.
Il peut rester désactivé ou non.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>DOM - Désactiver/Activer un input</title>
<script type="text/javascript">
function copieChoix()
{
var no = document.getElementById("no");
var res = document.getElementById("result");
var option = no.options[no.selectedIndex].text;
var txt = res.value;
txt = txt + option;
if (option != "Faites un choix") {
  /* en ôtant les // l'input redevient accessible
     sinon, il se remplit mais reste inaccessible */
   //res.disabled=false;
   res.value=txt;
  }
}
</script>
</head>

<body onLoad='document.getElementById("result").disabled=true;'>
<form action="">
<br><br>
<select id="no" onChange="copieChoix()" >
  <option>Faites un choix</option>
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
  <option>6</option>
  <option>7</option>
  <option>8</option>
  <option>9</option>
</select>
<input type="button" onclick="copieChoix()" value="Ajouter -->"> 
<input type="text" id="result" size="20">
</form><br><br><br>
<p style="font-size:85%">En réponse à
  <a href="http://www.commentcamarche.net/forum/affich 4410827 javascript pour rendre un champ non saisissab#0">
  Javascript pour rendre un champ non saisissab</a>
</p>
</body>
</html>

Rappel : Si Javascript est désactivé dans le navigateur, ça ne marche plus.

--

Répondre à Gihef

3

michelB, le 25 déc 2007 à 16:58:56

Merci Gihef de cette réponse si rapide.

Je vais me pencher sur le code mais cela ne répond pas exactement à mon problème, car dans ton exemple, tu saisis par programation le champ text désactivé.
Ce que je que je cherche est de rendre ce champ text directement saisissable lorsqu'une valeur déterminée du champ select est sélectionnée.

Répondre à michelB

4

Gihef, le 25 déc 2007 à 17:05:22
  • +1

Alors adapte le test

if (option != "Faites un choix") {
  /* en ôtant les // l'input redevient accessible
     sinon, il se remplit mais reste inaccessible */
   //res.disabled=false;
   res.value=txt;
  }
Ici, il teste si le choix est différent de "Faites un choix".

Tu lui peux indiquer d'activer le champ si telle ou telle valeur est choisie dans la liste.
Par exemple
if (option == 2) {
   res.disabled=false;
   res.focus();
  }

--

Répondre à Gihef

5

michelB, le 25 déc 2007 à 17:10:25

CA MARCHE !!!

Merci beaucoup Gihef

Répondre à michelB

6

Gihef, le 25 déc 2007 à 17:16:29

(-:

Résolu, on peut considérer que c'est résolu alors ?

--

Répondre à Gihef

7

 michelB, le 25 déc 2007 à 17:33:33

Où trouve-t-on cette option pour dire que le pb est résolu ?

Répondre à michelB
Collection CommentÇaMarche.net