IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Formulaires
        Désactiver/activer un ou des champs de formulaire.
        Sélectionner/désélectionner plusieurs cases à cocher
        Donner le focus à un champ
        Afficher/cacher une zone de texte
        Upload multiple avec ajout dynamique des champs
        Vérification qu'un bouton radio est sélectionné
        Vérification d'un champ qui ne peut pas être vide
        Nombre de caractères d'une zone de texte
        Comment permettre aux internautes de trier une liste ?
        Comment verifier si la valeur rentrées dans un champ est un entier >0 ?

rechercher
precedent    sommaire    suivant    telecharger


Auteur : mathieu
Version : 04/01/2006
Désactiver/activer un ou des champs de formulaire.
Vous trouverezici plusieurs fonctions qui vont vous permettre de :

  • Activer/désactiver un champ en cliquant sur une case à cocher
  • Choisir le nombre de champs activés (les champs sont activés du 1er jusqu'à celui en face du bouton radio inclus)
  • Recopier un champ dans un autre quand une case est cochée
<script type='text/javascript'>
function t(num)
{
for (var i = 1; i <= 5; i++) {
disableInput(("t" + i), (i > num));
}
}

function copieInput(idInputSource, idInputResult, idCheckBox)
{
var inputS = document.getElementById(idInputSource);
var inputR = document.getElementById(idInputResult);
var checkbox = document.getElementById(idCheckBox);

if (checkbox.checked == false) {
disableInput(idInputResult, false);
} else {
disableInput(idInputResult, true);
inputR.value = inputS.value;
}
}

function disableInput(idInput, valeur)
{
var input = document.getElementById(idInput);
input.disabled = valeur;

if (valeur) {
input.style.background = "#CCC";
BSajoute(idInput);
} else {
input.style.background = "#FFF";
BSsuppr(idInput);
}
}

function BSajoute(idInput)
{
for (var i = 0; i < tableauBS.length; i++) {
if (tableauBS[i] == idInput) {
return;
}
}
tableauBS.push(idInput);
}

function BSsuppr(idInput)
{
for (var i = 0; i < tableauBS.length; i++) {
if (tableauBS[i] == idInput) {
//alert(idInput + " supprimé à la position " + i + "\n" +tableauBS);
tableauBS.splice(i, 1);
return;
}
}
}
/**
* A appeler dans le onsubmit du form pour que 
* les champs puissent transmettre leurs valeurs
*/
function activeBeforeSubmit()
{
while (tableauBS.length > 0) {
var idInput = tableauBS.pop();

var input = document.getElementById(idInput);
input.disabled = false;
}
}
</script>
<fieldset>
<legend>Activer/désactiver un champ en cliquant sur une case à cocher</legend>
<input name="active" id="idactive" onclick="disableInput('ida', this.checked);" type="checkbox" />
<input name="a" id="ida" type="text" />
</fieldset>
<fieldset>
<legend>Choisir le nombre de champs activés 
(les champs sont activés du 1er jusqu'à celui en face du bouton radio inclus)</legend>
<table>
<tbody>
<tr> 
              <td><input name="to" value="1" onclick="t(1);" type="radio"></td>
              <td><input name="t1" id="t1" value="aaaaa" type="text"></td>
            </tr>
            <tr> 
              <td><input name="to" value="2" onclick="t(2);" type="radio"></td>
              <td><input name="t2" id="t2" value="bbbbb" type="text"></td>
            </tr>
            <tr> 
              <td><input name="to" value="3" onclick="t(3);" checked="checked" type="radio"></td>

              <td><input name="t3" id="t3" value="ccccc" type="text"></td>
            </tr>
            <tr> 
              <td><input name="to" value="4" onclick="t(4);" type="radio"></td>
              <td><input disabled="disabled" name="t4" id="t4" value="ddddd" type="text"></td>
            </tr>
            <tr> 
              <td><input name="to" value="5" onclick="t(5);" type="radio"></td>
              <td><input disabled="disabled" name="t5" id="t5" value="eeeee" type="text"></td>
            </tr>
          </tbody>
</table>
</fieldset>
<fieldset>
<legend>Recopier dans le champ de droite quand la case est cochée</legend>
<input name="s7" id="s7" onkeyup="copieInput('s7', 'r7', 'copie');" type="text" />
<input id="copie" onclick="copieInput('s7', 'r7', 'copie');" type="checkbox" />
<input name="r7" id="r7" type="text" />
</fieldset>

Auteur : mathieu
Version : 04/01/2006
Sélectionner/désélectionner plusieurs cases à cocher
<script type='text/javascript'>
function cocheTous(nameCheckBoxes, valeur)
{
var liste = document.forms["form4"].elements[nameCheckBoxes];

for (var i = 0; i < liste.length; i++) {
liste[i].checked = valeur;
}
}
</script>
Tous : <input name="tous" id="idtous" onclick="cocheTous('a', this.checked);" type="checkbox" />
<br>
Résultat : 
<input name="a" id="ida1" type="checkbox" />
<input name="a" id="ida2" type="checkbox" />
<input name="a" id="ida3" type="checkbox" />

Auteur : mathieu
Version : 04/01/2006
Donner le focus à un champ
<script type='text/javascript'>
function donneFocus(id)
{
// le fait de donner le focus à un élément déplace aussi la fenêtre
// pour rendre l'élement visible
var element = document.getElementById(id);
element.focus();
}
</script>
<input onclick="donneFocus('input1');" value="donneFocus ->" type="button" />
<input id="input1" type="text" />
<input onclick="donneFocus('input2');" value="donneFocus ->" type="button" />
<input id="input2" type="text" />

Auteur : mathieu
Version : 04/01/2006
Afficher/cacher une zone de texte
Ce script permet d'afficher et de cacher un cadre de trois façons différentes:
en le retirant simplement du flux ,en le faisant disparaitre sans le retirer du flux, en le réduisant verticalement.
<script type="text/javascript">
function affCache(idDiv) {
var div = document.getElementById(idDiv);
if (div.style.display == "") 
div.style.display = "none";
else 
div.style.display = "";
}
function affCacheHidden(idDiv) {
var div = document.getElementById(idDiv);
if (div.style.visibility == "")
div.style.visibility = "hidden";
else 
div.style.visibility = "";
}
function affCacheV(idDiv)
{
var div = document.getElementById(idDiv);
if (div.style.width == "") 
div.style.width = "0";
else
div.style.width = "";
}
</script>
<input type="button" onclick="affCache('div1');" value="affCache('div1')"/>
<input type="button" onclick="affCacheHidden('div1');" value="affCacheHidden('div1')"/>
<input type="button" onclick="affCacheHidden('div1');" value="affCacheV('div1')"/>
<div id="div1">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin eros risus,
 porttitor sed, malesuada quis, dictum non, lorem. Vestibulum sed tortor. 
 Aenean vitae turpis. Cras fringilla scelerisque orci. Morbi pretium 
 condimentum risus. Sed elementum lacinia urna. Proin sed pede ut felis 
 ultrices tincidunt. Aliquam erat volutpat. Morbi convallis odio nec ante. 
 Donec turpis. Nunc sit amet turpis eget nibh adipiscing aliquam.
</div>

Auteur : siddh
Version : 04/01/2006
Upload multiple avec ajout dynamique des champs
<html>
   <head>
      <title>Utilisation du dom</title>      
      <script type="text/javascript">
          var compteur = 0;
         function ajouter(){
            // On récupère le fieldset
            var conteneur   = document.getElementById('fichiers');
            /**
            * Création des éléments dont on a besoin :
            * Un div dans lequel on mettra notre champ file et une case à cocher
            * qui nous servira à enlever ensuite le div.
            *
            * En utilisant un div ça sera plus facile car sinon
            * on aurais du enlever le champ file et la case à cocher séparément.
            */
            var undiv      = document.createElement('div');
            var fich      = document.createElement('input');
            var check      = document.createElement('input');
            
            fich.name   = 'mesfichiers[]';
            fich.type   = 'file';
            
            check.type   = 'checkbox';

            // On enlève sur le click de la checkbox
            check.onclick = function(){
               // Elément à enlever
               lediv      = this.parentNode;
               // Elément auquel on enlève
               lefieldset   = lediv.parentNode;
               // On enlève !
               lefieldset.removeChild(lediv);
            }

            /**
            * Ajout des éléments au div grace a appendChild
            * qui ajoute à la fin.
            * On utilise aussi createTextNode pour ajouter du texte apres la case
            */
            undiv.appendChild(fich);
            undiv.appendChild(check);
            undiv.appendChild(document.createTextNode("Enlever"));

            // Ajout du div :
            conteneur.appendChild(undiv);
         }
      </script>
   </head>
   <body>
      <form action='mapage.php' method='post' enctype='multipart/form-data'>
         <fieldset id='fichiers'>
            <legend>Fichiers</legend>
            <input type='button' value='Ajouter un fichier' onclick='ajouter()' /><br />
         </fieldset>
      </form>
   </body>
</html>
Dans cet exemple, la page qui recevra le formulaire est en php, d'ou l'utilisation des "[]" dans le "name" du champ file.
Selon le langage serveur utilisé il ne faudra peut etre pas les mettre.


Auteur : mathieu
Version : 04/01/2006
Vérification qu'un bouton radio est sélectionné
<script type='text/javascript'>
function verifRadio(nameRadio, descriptionChamp)
{
var liste = document.forms["form10"].elements[nameRadio];

for (var i = 0; i < liste.length; i++) {
if (liste[i].checked) {
alert('Le champ "' + descriptionChamp + '" est bien rempli.');
return;
}
}

liste[0].focus();
alert('Vous devez renseigner le champ "' + descriptionChamp + '".');
}
<script>
<input name="radio10" id="radio10A" value="A" type="radio" /> 
<label for="radio10A">Choix A</label>
<input name="radio10" id="radio10B" value="B" type="radio" /> 
<label for="radio10B">Choix B</label>
<input name="radio10" id="radio10C" value="C" type="radio" /> 
<label for="radio10C">Choix C</label>
<input onclick="verifRadio('radio10', 'nom du champ radio');" 
value="verifRadio('nameRadio', 'nom du champ radio')" type="button" />

Auteur : mathieu
Version : 04/01/2006
Vérification d'un champ qui ne peut pas être vide
<script type='text/javascript'>
function verif(idInput, valeurVide, descriptionChamp)
{
var input = document.getElementById(idInput);

if (input.value == valeurVide) {
input.focus();
alert('Vous devez renseigner le champ "' + descriptionChamp + '".');
} else
alert('Le champ "' + descriptionChamp + '" est bien rempli.');
}
</script>
<input id="text9" type="text"/>
<input onclick="verif('text9', '', 'nom du champ texte');" 
value="verif('idInput', '', 'nom du champ texte')" type="button"/>
<select id="select9">
<option value="0">- Faites un choix -</option>
<option value="1">Choix 1</option>
<option value="2">Choix 2</option>
<option value="3">Choix 3</option>
</select>
<input onclick="verif('select9', 0, 'nom du champ select');" 
value="verif('idInput', 0, 'nom du champ select')" type="button"/>

Auteur : mathieu
Version : 04/01/2006
Nombre de caractères d'une zone de texte
<script type='text/javascript'>
function compteCarac(idTextarea, idSpan)
{
var t = document.getElementById(idTextarea);
var s = document.getElementById(idSpan);

s.innerHTML = t.value.length;
}
</script>
<textarea id="text8" rows="4" cols="30" onkeyup="compteCarac('text8', 'nbCarac8')"></textarea>
<span id="nbCarac8">0</span> caractère(s)

Auteur : SpaceFrog
Auteur : simone5.1
Version : 04/01/2006
Comment permettre aux internautes de trier une liste ?
Voici un code qui permet à un utilisateur d'ordonner comme bon lui semble une liste (déroulante ou pas)
<HTML>
<script type="text/javascript">
var Obj=null;
function Deplacer(sens){
    if(Obj==null){return false;};
    var OptionSel= Obj.selectedIndex;
switch (true){
    case ( Obj.length == -1 & sens==-1):
        alert('Pas d\'option à déplacer');
        break;
    case(OptionSel== -1):
        alert('Selectionnez une option à déplacer');
        break;
    case(Obj.length==0):
        alert('Il n\'y a qu\'une option \!');
        break;
    case(OptionSel== 0 && sens==-1):
        alert('La première option ne peut être déplacée');
        break;
   case(OptionSel== Obj.length-1 && sens==1):
        alert('La dernière option ne peut être déplacée');
         break;
    case(sens==-1):
        // Ce code est le code qui est appelé lorque l'on veut remonter une 
//option dans la liste
        // On mémorise dans des variables le texte et les valeurs des éléments 
// que l'on déplace.
        // Il suffit ensuite d'échanger les deux éléments
        var moveText1 = Obj[OptionSel-1].text;
        var moveText2 = Obj[OptionSel].text;
        var moveValue1 = Obj[OptionSel-1].value;
        var moveValue2 = Obj[OptionSel].value;
        // Echange des éléments
        Obj[OptionSel].text = moveText1;
        Obj[OptionSel].value = moveValue1;
        Obj[OptionSel-1].text = moveText2;
        Obj[OptionSel-1].value = moveValue2;
        Obj.selectedIndex = OptionSel-1;
        break;
   case(sens==1):
         // On procède de la même manière que pour faire monter une option.
         // La différence, c que dans ce cas, on prend en compte l'option suivante, 
 // et non la précedente comme auparavant
         var moveText1 = Obj[OptionSel].text;
         var moveText2 = Obj[OptionSel+1].text;
         var moveValue1 = Obj[OptionSel].value;
         var moveValue2 = Obj[OptionSel+1].value;
         Obj[OptionSel].text = moveText2;
         Obj[OptionSel].value = moveValue2;
         Obj[OptionSel+1].text = moveText1;
         Obj[OptionSel+1].value = moveValue1;
         Obj.selectedIndex = OptionSel+1;
         break;
    }
}
</script>
<BODY>
<FORM>
<select name="tag1" id="tag1" size="8" STYLE="WIDTH: 200px" 
onclick="Obj=this;" style="float:left;">
<option value="0">TEST1</option>
<option value="1">TEST2</option>
<option value="2">TEST3</option>
<option value="3">TEST4</option>
<option value="4">TEST5</option>
<option value="5">TEST6</option>
<option value="6">TEST7</option>
<option value="7">TEST8</option>
</select>
<div style="float:left;"><br/>
<br/>
<input type="button" name="boutMonter" id="boutMonter" value="Monter" 
onClick="Deplacer(-1);" style="width:80px"/><br/><br/>
<input type="button" name="boutDesc" id="boutDesc" value="Descendre" 
onClick="Deplacer(1);" style="width:80px"/>
</div>
</FORM>
</BODY>
</HTML>
Grâce à ce code, lorsque l'on clique sur sur un item de la liste pour le déplacer,
la variable Obj prend la valeur de la liste déroulante.
Ainsi, dans la fonction deplacer, la variable Obj fait appel à la liste en question.
La variable OptionSel ne sert qu'à raccourcir les ligne de codes.
Elle évite ainsi d'avoir à retaper à chaque fois Obj.selectedIndex.


Auteur : javaEli
Auteur : denisC
Version : 04/01/2006
Comment verifier si la valeur rentrées dans un champ est un entier >0 ?
function IsInteger(nbr){
    return (!isNan(nbr)||(parseInt(nbr,10)<=0));
}
La fonctions parseInt retourne un nombre entier converti à partir d'une chaîne.
Il existe aussi la fonction IsNaN qui retourne une valeur booléenne indiquant si une valeur correspond à la valeur réservée NaN (Not a Number).


rechercher
precedent    sommaire    suivant    telecharger

Valid XHTML 1.1!Valid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.