Auteur : mathieu
| Version : 04/01/2006 | | |
| |
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) {
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 | | |
| | <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 | | |
| | <script type='text/javascript'>
function donneFocus(id)
{
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 | | |
| |
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 | | |
| | <html>
<head>
<title>Utilisation du dom</title>
<script type="text/javascript">
var compteur = 0;
function ajouter(){
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';
check.onclick = function(){
lediv = this.parentNode;
lefieldset = lediv.parentNode;
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"));
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 | | |
| | <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 | | |
| | <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 | | |
| | <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) |
|
| |
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):
var moveText1 = Obj[OptionSel-1].text;
var moveText2 = Obj[OptionSel].text;
var moveValue1 = Obj[OptionSel-1].value;
var moveValue2 = Obj[OptionSel].value;
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):
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.
|
| | 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).
|
|