11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

Ceci est mon premier message sur votre forum, je tenais à vous saluer Smiley cligne

Dans la cadre de la réalisation d'un formulaire pour mon employeur, je rencontre un petit problème avec le javascript.

Dans ce formulaire se trouvent 2 boutons radio qui vont définir lesquels des champs qui les suivent vont être activés ou désactivés, selon la sélection.

Voici le script utilisé pour réaliser cette action:

<script language="Javascript">
// ==================
//	Activations - Désactivations
// ==================
function Grise(Controleur, Controle, Masquer) {
var objControleur = document.getElementById(Controleur);
var objControle = document.getElementById(Controle);
	if (Masquer=='1')
		objControle.style.visibility=(objControleur.checked==true)?'visible':'hidden';
	else
		objControle.disabled=(objControleur.checked==true)?false:true;
	return true;
}
</script>


et sur mes champs:

onClick="Grise('radio_1', 'select_1', '0');


Le script fonctionne bien puisqu'un clic sur un de ces boutons radio me désactive (grise) les champs souhaités.

Toutefois, lors du chargement de la page, il ne désactive aucun des champs alors qu'un des bouton est d'office sélectionné... il faut impérativement que je clique sur un des boutons pour que le script agisse.

Pas très doué en js, je ne parviens pas à faire en sorte que ce champ soit grisé au chargement de la page. J'ai bien essayé de mettre un onload sur la balise body mais je dois faire une erreur quelque part car je n'obtiens pas le résultat souhaité Smiley decu

Pourriez-vous éclairer ma lanterne ?

D'avance merci Smiley cligne
Bonjour et bienvenue sur le forum Smiley smile

Normalement, l'évenement onload du body (= window.onLoad) doit être la solution ...

Pourrais tu donner un exemple de ton code pour le onload?

Attention toutefois à ne pas écraser tes évènement onload. En effet, si tu utilise plusieurs fonctions sur le onload, je te conseil fortement d'utilisé un gestionnaire spécifique.

Voici celui que j'utilise:

/**
*@addtogroup MEXUP
*
*Mxp_Init
*Permet de gérer des initialisations multiples sur l'évenement "window.onload".
*
*@author François Béliveau
*@copyright 2006 MEXUP <http://www.mexup-soft.com>
*@license GNU General Public License <http://www.gnu.org/copyleft/gpl.html> 
*@version 0.1.0
*/
var Mxp_Init =
{
	/**
	*set_NouvelleFonction
	*Ajoute une fonction dans la pile des initialisations.
	*Créer à partir des travaux de Dean Edwards/Matthias Miller/John Resig
	*  http://dean.edwards.name/weblog/2006/06/again/
 
	*  http://www.vivabit.com/bollocks/2006/06/21/a-dom-ready-extension-for-prototype
 
	*  http://simon.incutio.com/archive/2004/05/26/addLoadEvent
 
	*
	*@param     object[Evenement]
	*
	*@return     boolean
	*/
	set_NouvelleFonction: function(obj_Fonction)
	{
		if(typeof Array.prototype.push == "undefined")
		{
			// méthode push() pour la compatibilité IE5
			Array.prototype.push = function()
				{
					var int_Indice = 0;
					var int_Nb = arguments.length;
					for(int_Indice = 0; int_Indice < int_Nb; int_Indice++)
					{
						this[this.length] = arguments[int_Indice];
					}
					return this.length;
				};
		}
	
		if(!window.array_MxpInit)
		{
			var exec_Initialisation = function ()
			{
				if(arguments.callee.done)
					return;

				arguments.callee.done = true;
				if(window.int_MxpTimer)
				{
					clearInterval(window.int_MxpTimer);
					window.int_MxpTimer = null;
				}

				var int_Nb = window.array_MxpInit.length;
				for(var int_I=0;int_I < int_Nb;int_I++)
				{
					if(window.array_MxpInit[int_I])
						window.array_MxpInit[int_I]();
				}
				window.array_MxpInit = null;

				/*@cc_on @*/
					/*@if (@_win32)
						document.getElementById("__ie_onload").onreadystatechange = "";
				/*@end @*/
			};

			if(document.addEventListener)
				document.addEventListener("DOMContentLoaded", exec_Initialisation, false);
      
			// Internet Explorer
			/*@cc_on @*/
				/*@if (@_win32)
					document.write("<scr"+"ipt id=__ie_onload defer src=javascript:void(0)><\/scr"+"ipt>");
				var script = document.getElementById("__ie_onload");
				script.onreadystatechange = function()
				{
					if (this.readyState == "complete")
					{
						exec_Initialisation();
					}
			};
			/*@end @*/

			if(/WebKit/i.test(navigator.userAgent))
			{
				window.int_MxpTimer = setInterval(
					function()
					{
						if (/loaded|complete/.test(document.readyState))
						{
							exec_Initialisation();
						}
					},
					10);
			}

			window.onload = exec_Initialisation;
			window.array_MxpInit = [];
		}

		window.array_MxpInit.push(obj_Fonction);
	}
};


Je me permet également de te mettre en garde, c'est pas parceque des champs sont "grisé" (disable je suppose?) qu'il ne peuvent pas être saisi. Ton code côté client doit imérativement être compléter par un script côté serveur qui vérifira la validité des infos.
Modifié par Francois44 (27 Mar 2007 - 10:48)
Example d'ajout d'une fonction sur le onload en utilisant le gestionnaire de mon précédant message

Mxp_Init.set_NouvelleFonction(taFonction);
Bonjour,
Francois44 a écrit :
Example d'ajout d'une fonction sur le onload en utilisant le gestionnaire de mon précédant message

Mxp_Init.set_NouvelleFonction(taFonction);
Je ne suis pas convaincu de l'utilité d'une telle usine à gaz pour le problème de départ.

Par rapport à ton code, pepere, j'ai quelques remarques :
pepere a écrit :
<script language="Javascript">
// ==================
//	Activations - Désactivations
// ==================
function Grise(Controleur, Controle, Masquer) {
var objControleur = document.getElementById(Controleur);
var objControle = document.getElementById(Controle);
	if (Masquer=='1')
		objControle.style.visibility=(objControleur.checked==true)?'visible':'hidden';
	else
		objControle.disabled=(objControleur.checked==true)?false:true;
	return true;
}
</script>
- L'attribut "language" est déprécié, il faut lui préférer type="text/javascript".
- Pourquoi passer '1' et pas true ou false pour "Masquer" ?
- "objControleur.checked==true" sera avantageusement remplacé par "objControleur.checked".
- De même, "(objControleur.checked==true)?false:true" est strictement équivalent à "!objControleur.checked".

En ce qui concerne ton problème, je pense comme Francois44 qu'il faut ajouter un gestionnaire d'événements au chargement (load) qui va parcourir tous tes "controleurs" pour voir s'ils sont sélectionnés.
Modifié par Eldebaran (19 Dec 2006 - 11:53)
D'autre part, au lieu de passer l'id de ton "controleur" en paramètre de ta fonction "Grise", tu peux passer directement le noeud :
[b]HTML[/b]
onclick="Grise(this, 'select_1', '0');"

[b]JavaScript[/b]
function Grise(objControleur, Controle, Masquer) {
...
}
Super !!! Merci pour vos réponses si rapides et complètes Smiley cligne

Si je vous suis bien, mon code doit donc devenir ceci:

<script type="text/javascript">
// ==================
//	Activations - Désactivations
// ==================
function Grise(Controleur, Controle, Masquer) {
var objControleur = document.getElementById(Controleur);
var objControle = document.getElementById(Controle);
	if (Masquer=='true')
		objControle.style.visibility=(objControleur.checked)?'visible':'hidden';
	else
		objControle.disabled=(!objControleur.checked)?false:true;
	return true;
}
</script>


et sur mes contrôleurs:

onClick="Grise(this, 'select_1', '0');


enfin, sur ma balise body:

<body onload="javascript:Grise('radio_1', 'select_1', '0');">


Mais cette dernière ne fonctionne pas... J'ai encore du louper quelque chose mais quoi ???

De plus, je vais devoir mettre plusieurs fonctions "Grise" sur le onload puisqu'il faut griser plusieurs champs. J'ai bien essayé de mettre ces différents champs dans un div afin de travailler directement sur ce dernier mais, en faisant cela, il désactive bien le texte mais pas les select (ou autre élément du formulaire) ... Smiley biggol

Désolé d'être si inculte mais il faut bien commencer un jour ou l'autre Smiley langue
Eldebaran >> je te l'accorde, j'y suis peut être allé un peu fort ... mais ça permet de coder proprement et de centraliser le code.

je vais essayer de t'aider même si je suis pas un pro du JS Smiley cligne


voici un petit test qui semble fonctionner

<html>
<head>
		<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
		<meta http-equiv="Content-Script-Type" content="text/javascript" />
<script type="text/javascript">
// ==================
//	Activations - Désactivations
// ==================
function Grise(objControleur, Controle, Masquer) {
	var objControle = document.getElementById(Controle);
	
	if (Masquer=='true')
		objControle.style.visibility=(objControleur.checked)?'visible':'hidden';
	else
		objControle.disabled=(!objControleur.checked)?false:true;
	return true;
}
</script>


</head>
<body onload="Grise(document.getElementById('radio2'), 'select_2', false);">

<input type="radio" name="group1" id="radio1" value="Milk" onClick="Grise(this, 'select_1', false);"/>
<input type="radio" name="group1" id="radio2" value="Butter" checked="checked" onClick="Grise(this, 'select_2', false);"/>
<input type="radio" name="group1" id="radio3" value="Cheese" onClick="Grise(this, 'select_3', false);"/>

<select id="select_1">
	<option>test_1</option>
	<option>test_2</option>
</select>

<select id="select_2">
	<option>test_1_select2</option>
	<option>test_2_select2</option>
</select>

<select id="select_3">
	<option>test_1_select2</option>
	<option>test_2_select2</option>
</select>
</body>
</html>
Bonjour,

Merci pour ton aide Francois44 Smiley cligne

Je dois être très bête car de mon coté, ca ne fonctionne pas...

Je mets le code complet de ma fonction, j'espère que vous pourrez me dire ou je commets une erreur.

//fonction add  qui represente le formulaire d'ajout d' un mail
    
	function add()
    {		
?>

<script type="text/javascript">

 	function verifchamps() {

	if (document.getElementById('dest').value == ""){
	alert('<?php echo"" . _NODEST . ""; ?>');
   	return false;
	}

	if (document.getElementById('objet').value == ""){
	alert('<?php echo"" . _NOOBJET . ""; ?>');
   	return false;
	}

	if (document.getElementById('style').value == ""){
	alert('<?php echo"" . _NOSTYLE . ""; ?>');
   	return false;
	}

	if (document.getElementById('contenu').value == ""){
	alert('<?php echo"" . _NOCONTENU . ""; ?>');
   	return false;
	}

	if (document.getElementById('radio_1').checked && document.getElementById('after').value == ""){
	alert('<?php echo"" . _AFTER . ""; ?>');
   	return false;
	}

	return true;
	
}

</script>

<script type="text/javascript">
// ==================
//	Activations - Désactivations
// ==================
function Grise(Controleur, Controle, Masquer) {
var objControleur = document.getElementById(Controleur);
var objControle = document.getElementById(Controle);
	if (Masquer=='true')
		objControle.style.visibility=(objControleur.checked)?'visible':'hidden';
	else
		objControle.disabled=(!objControleur.checked)?false:true;
	return true;
}
</script>

<body onload="Grise(document.getElementById('radio_2'), 'input_1', false);">

		<p align="center"><br /><big><b><?php echo"" . _ADDMAIL .""; ?></b></big><br /><br /><small><i><?php echo"" . _FILLFIELDS .""; ?></i></small></p>
<form id="form1" name="form1" method="post" action="index.php?file=Mailing&amp;op=do_add" onSubmit="return verifchamps();">
<table width="100%" border="0" cellspacing="3" cellpadding="7">
  <tr>
    <td width="40%"><div align="right"><?php echo"" . _DEST .""; ?></div></td>
    <td width="3%"><img src="modules/Mailing/images/help.gif" border="0" alt="<?php echo"" . _INFOR . ""; ?>" /></td>
    <td width="3%">:</td>
    <td width="57%"><input type="text" name="dest" /></td>
  </tr>
  <tr>
    <td><div align="right"><?php echo"" . _OBJET .""; ?></div></td>
    <td><img src="modules/Mailing/images/help.gif" border="0" alt="<?php echo"" . _INFOR . ""; ?>" /></td>
    <td>:</td>
    <td><input type="text" name="objet" /></td>
  </tr>
  <tr>
    <td><div align="right"><?php echo"" . _TYPETEXT .""; ?></div></td>
    <td><img src="modules/Mailing/images/help.gif" border="0" alt="<?php echo"" . _INFOR . ""; ?>" /></td>
    <td>:</td>
    <td>
      <select name="style">
        <option value="1" selected="selected"><?php echo"" . _FORMATTEXT .""; ?></option>
        <option value="2"><?php echo"" . _HTML .""; ?></option>
      </select>
    </td>
  </tr>
  <tr>
    <td><div align="right"><?php echo"" . _CONTENU .""; ?></div></td>
    <td><img src="modules/Mailing/images/help.gif" border="0" alt="<?php echo"" . _INFOR . ""; ?>" /></td>
    <td>:</td>
    <td>
      <textarea name="contenu" cols="60" rows="8"></textarea>
    </td>
  </tr>
  <tr>
    <td><div align="right"><?php echo"" . _TYPESEND .""; ?></div></td>
    <td><img src="modules/Mailing/images/help.gif" border="0" alt="<?php echo"" . _INFOR . ""; ?>" /></td>
    <td>:</td>
    <td>
		<input type="radio" id="radio_1" name="radios" onClick="Grise('radio_1', 'select_1', false);Grise('radio_1', 'select_2', false);Grise('radio_1', 'select_3', false);Grise('radio_1', 'select_4', false);Grise('radio_1', 'div_1', false);Grise('radio_2', 'input_1', false);Grise('radio_2', 'div_3', false);" CHECKED>&nbsp;<label for="radio_1"><?php echo"" . _SELFIXE .""; ?></label>
		<input type="radio" id="radio_2" name="radios" onClick="Grise('radio_1', 'select_1', false);Grise('radio_1', 'select_2', false);Grise('radio_1', 'select_3', false);Grise('radio_1', 'select_4', false);Grise('radio_1', 'div_1', false);Grise('radio_2', 'input_1', false);Grise('radio_2', 'div_3', false);">&nbsp;<label for="radio_2"><?php echo"" . _SELINSCR .""; ?></label>
    </td>
  </tr>
  <tr>
    <td>
	 <div align="right"><?php echo"" . _CHOOSEDATE .""; ?></div>
	</td>
    <td><img src="modules/Mailing/images/help.gif" border="0" alt="<?php echo"" . _INFOR . ""; ?>" /></td>
    <td>:</td>
    <td>
	<div id="div_1">
	<?php echo"" . _DAY .""; ?> :
      <select name="jour" id="select_1">
        <option value="1" selected="selected">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
        <option value="10">10</option>
        <option value="11">11</option>
        <option value="12">12</option>
        <option value="13">13</option>
        <option value="14">14</option>
        <option value="15">15</option>
        <option value="16">16</option>
        <option value="17">17</option>
        <option value="18">18</option>
        <option value="19">19</option>
        <option value="20">20</option>
        <option value="21">21</option>
        <option value="22">22</option>
        <option value="23">23</option>
        <option value="24">24</option>
        <option value="25">25</option>
        <option value="26">26</option>
        <option value="27">27</option>
        <option value="28">28</option>
        <option value="29">29</option>
        <option value="30">30</option>
        <option value="31">31</option>
    </select>&nbsp;&nbsp;&nbsp;&nbsp; 
    <?php echo"" . _MONTH .""; ?> :
    <select name="mois" id="select_2">
      <option value="1"><?php echo"" . _JAN .""; ?></option>
      <option value="2"><?php echo"" . _FEB .""; ?></option>
      <option value="3"><?php echo"" . _MAR .""; ?></option>
      <option value="4"><?php echo"" . _APR .""; ?></option>
      <option value="5"><?php echo"" . _MAY .""; ?></option>
      <option value="6"><?php echo"" . _JUN .""; ?></option>
      <option value="7"><?php echo"" . _JUL .""; ?></option>
      <option value="8"><?php echo"" . _AUG .""; ?></option>
      <option value="9"><?php echo"" . _SEP .""; ?></option>
      <option value="10"><?php echo"" . _OCT .""; ?></option>
      <option value="11"><?php echo"" . _NOV .""; ?></option>
      <option value="12"><?php echo"" . _DEC .""; ?></option>
    </select>&nbsp;&nbsp;&nbsp;&nbsp; 
   <?php echo"" . _ANNEE .""; ?> :
    <select name="annee" id="select_3">
      <option value="2006" selected="selected">2006</option>
      <option value="2007">2007</option>
      <option value="2008">2008</option>
      <option value="2009">2009</option>
      <option value="2010">2010</option>
      <option value="2011">2011</option>
      <option value="2012">2012</option>
      <option value="2013">2013</option>
      <option value="2014">2014</option>
      <option value="2015">2015</option>
      <option value="2016">2016</option>
      <option value="2017">2017</option>
      <option value="2018">2018</option>
      <option value="2019">2019</option>
      <option value="2020">2020</option>
     </select>
	 </div>
	 </td>
  </tr>
  <tr id="tr_3">
    <td><div align="right"><?php echo"" . _ANNUALRENEW .""; ?></div></td>
    <td><img src="modules/Mailing/images/help.gif" border="0" alt="<?php echo"" . _INFOR . ""; ?>" /></td>
    <td>:</td>
    <td> 
		<select name="renew" id="select_4">
	      <option value="1"><?php echo"" . _YES .""; ?></option>
	      <option value="2"><?php echo"" . _NO .""; ?></option>
		</select>
	</td>
  </tr>
  <tr>
    <td><div align="right"><?php echo"" . _SENDMAIL .""; ?></div>
	</td>
    <td><img src="modules/Mailing/images/help.gif" border="0" alt="<?php echo"" . _INFOR . ""; ?>" /></td>
    <td>:</td>
    <td><div id="div_3"><input name="after" type="text" size="2" maxlength="3" id="input_1" />&nbsp;&nbsp;<?php echo"" . _DAYSAFTER .""; ?></div></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td colspan="4">
	 <div align="center"><input type="submit" name="Submit" value="<?php echo"" . _RECORD .""; ?>" />
     </div>
	</td>
  </tr>
</table>
</form>
</body>
<?php
		
    } 


J'ai également tenté de mettre une nouvelle fonction pour cocher l'objet de départ qui doit être grisé. Elle ressemblait à ceci:

function Load() {
if (document.getElementById('radio_1').checked)
		document.getElementById('div_3').disabled=(!document.getElementById('radio_1').checked)?false:true;
return true;
}


Là encore, pas de chance, ca ne tourne pas Smiley bawling

Merci de continuer à me venir en aide, c'est bien sympa Smiley cligne
Modifié par pepere (20 Dec 2006 - 10:31)
Salut, d'après ce que j'ai pu voir, tu as fait un mixe entre ta solution de départ (dans laquelle tu passe à ta fonction l'id de l'élément pour touver le contrôleur) et la solution de Eldebaran (qui consiste à passer l'objet html directement)


voilà une version qui marche chez moi


<html>
	<head>
		<script type="text/javascript">
			function verifchamps()
			{
				if(document.getElementById('dest').value == "")
				{
					alert('PROUT -> dest');
					return false;
				}

				if(document.getElementById('objet').value == "")
				{
					alert('PROUT -> objet');
					return false;
				}

				if(document.getElementById('style').value == "")
				{
					alert('PROUT -> style');
					return false;
				}

				if (document.getElementById('contenu').value == "")
				{
					alert('PROUT -> contenu');
					return false;
				}

				if (document.getElementById('radio_1').checked && document.getElementById('after').value == "")
				{
					alert('PROUT -> after');
					return false;
				}

				return true;
			}
			
			function Grise(Controleur, Controle, Masquer)
			{
				var objControleur = document.getElementById(Controleur);
				var objControle = document.getElementById(Controle);
				if(Masquer=='true')
					objControle.style.visibility=(objControleur.checked)?'visible':'hidden';
				else
					objControle.disabled=(!objControleur.checked)?false:true;
				
				return true;
			}
		</script>
	</head>
	<body onload="Grise('radio_2', 'input_1', false);">
		<p align="center"><br /><big><b>MAIL</b></big><br /><br /><small><i>FILLFIELDS</i></small></p>

		<form id="form1" name="form1" method="post" action="index.php?file=Mailing&amp;op=do_add" onSubmit="return verifchamps();">
			<table width="100%" border="0" cellspacing="3" cellpadding="7">
				<tr>
					<td width="40%"><div align="right">DEST</div></td>
					<td width="3%"><img src="modules/Mailing/images/help.gif" border="0" alt="INFOR" /></td>
					<td width="3%">:</td>
					<td width="57%"><input type="text" name="dest" /></td>
				</tr>
				<tr>
					<td><div align="right">OBJET</div></td>
					<td><img src="modules/Mailing/images/help.gif" border="0" alt="INFOR" /></td>
					<td>:</td>
					<td><input type="text" name="objet" /></td>
				</tr>
				<tr>
					<td><div align="right">TYPETEXT</div></td>
					<td><img src="modules/Mailing/images/help.gif" border="0" alt="INFOR" /></td>
					<td>:</td>
					<td>
						<select name="style">
							<option value="1" selected="selected">FORMATTEXT</option>
							<option value="2">HTML</option>
						</select>
					</td>
				</tr>
				<tr>
					<td><div align="right">CONTENU</div></td>
					<td><img src="modules/Mailing/images/help.gif" border="0" alt="INFOR" /></td>
					<td>:</td>
					<td>
						<textarea name="contenu" cols="60" rows="8"></textarea>
					</td>
				</tr>
				<tr>
					<td><div align="right">TYPESEND</div></td>
					<td><img src="modules/Mailing/images/help.gif" border="0" alt="INFOR" /></td>
					<td>:</td>
					<td>
						<input type="radio" id="radio_1" name="radios" onClick="Grise('radio_1', 'select_1', false);Grise('radio_1', 'select_2', false);Grise('radio_1', 'select_3', false);Grise('radio_1', 'select_4', false);Grise('radio_1', 'div_1', false);Grise('radio_2', 'input_1', false);Grise('radio_2', 'div_3', false);">&nbsp;<label for="radio_1">SELFIXE</label>
						<input type="radio" id="radio_2" name="radios" onClick="Grise('radio_1', 'select_1', false);Grise('radio_1', 'select_2', false);Grise('radio_1', 'select_3', false);Grise('radio_1', 'select_4', false);Grise('radio_1', 'div_1', false);Grise('radio_2', 'input_1', false);Grise('radio_2', 'div_3', false);" checked="checked">&nbsp;<label for="radio_2">SELINSCR</label>
					</td>
				</tr>
				<tr>
					<td>
						<div align="right">Choix de la date</div>
					</td>
					<td><img src="modules/Mailing/images/help.gif" border="0" alt="" /></td>
					<td>:</td>
					<td>
						<div id="div_1">
							Jour :
							<select name="jour" id="select_1">
								<option value="1" selected="selected">1</option>
								<option value="2">2</option>
								<option value="3">3</option>
								<option value="4">4</option>
								<option value="5">5</option>
								<option value="6">6</option>
								<option value="7">7</option>
								<option value="8">8</option>
								<option value="9">9</option>
								<option value="10">10</option>
								<option value="11">11</option>
								<option value="12">12</option>
								<option value="13">13</option>
								<option value="14">14</option>
						        <option value="15">15</option>
						        <option value="16">16</option>
						        <option value="17">17</option>
						        <option value="18">18</option>
						        <option value="19">19</option>
						        <option value="20">20</option>
						        <option value="21">21</option>
						        <option value="22">22</option>
						        <option value="23">23</option>
						        <option value="24">24</option>
						        <option value="25">25</option>
						        <option value="26">26</option>
						        <option value="27">27</option>
						        <option value="28">28</option>
						        <option value="29">29</option>
						        <option value="30">30</option>
						        <option value="31">31</option>
							</select>&nbsp;&nbsp;&nbsp;&nbsp; 

							Mois :
							<select name="mois" id="select_2">
								<option value="1">JAN</option>
								<option value="2">FEB</option>
								<option value="3">MAR</option>
								<option value="4">APR</option>
								<option value="5">MAY</option>
								<option value="6">JUN</option>
								<option value="7">JUL</option>
								<option value="8">AUG</option>
								<option value="9">SEP</option>
								<option value="10">OCT</option>
								<option value="11">NOV</option>
								<option value="12">DEC</option>
							</select>&nbsp;&nbsp;&nbsp;&nbsp; 

							Année :
							<select name="annee" id="select_3">
								<option value="2006" selected="selected">2006</option>
								<option value="2007">2007</option>
								<option value="2008">2008</option>
								<option value="2009">2009</option>
								<option value="2010">2010</option>
								<option value="2011">2011</option>
								<option value="2012">2012</option>
								<option value="2013">2013</option>
								<option value="2014">2014</option>
								<option value="2015">2015</option>
								<option value="2016">2016</option>
								<option value="2017">2017</option>
								<option value="2018">2018</option>
								<option value="2019">2019</option>
								<option value="2020">2020</option>
							</select>
						</div>
					</td>
				</tr>
				<tr id="tr_3">
					<td><div align="right">ANNUALRENEW</div></td>
					<td><img src="modules/Mailing/images/help.gif" border="0" alt="INFOR" /></td>
					<td>:</td>
					<td> 
						<select name="renew" id="select_4">
							<option value="1">YES</option>
							<option value="2">NO</option>
						</select>
					</td>
				</tr>
				<tr>
					<td><div align="right">SENDMAIL</div></td>
					<td><img src="modules/Mailing/images/help.gif" border="0" alt="INFOR" /></td>
					<td>:</td>
					<td><div id="div_3"><input name="after" type="text" size="2" maxlength="3" id="input_1" />&nbsp;&nbsp;DAYSAFTER</div></td>
				</tr>
				<tr>
					<td>&nbsp;</td>
					<td>&nbsp;</td>
					<td>&nbsp;</td>
					<td>&nbsp;</td>
				</tr>
				<tr>
					<td colspan="4">
						<div align="center"><input type="submit" name="Submit" value="RECORD" /></div>
					</td>
				</tr>
			</table>
		</form>
	</body>
</html>


Sinon, au niveau de la structure même de ton html, il y pas mal de choses à redire:

1. tu devrais utilisé la balise label pour t'es intitulé example:

<p>
	<label for="id_de_l_input">Mon label</label>
	<input name="nom_input" id="id_de_l_input" value="valeur_de l_input" type="text">
</p>


2. je pense que tu peux alléger le poid de la page en évitant de systématiquement utilisé un tableau (il y a plein de tutos sur le site pour ça)

3.Il me semble que pour être valide, les attributs et les balises doivent être en MINUSCULE donc éviter "onSubmit" et utilisé "onsubmit" par exemple

4. l'utilisation des espace insécable "&nbsp;" n'est pas approprié pour placer des élément sur la page

5. ...

je vais pas tout dire, c'était juste pour te donner des pistes si tu cherche à t'améliorer et surtout, à rendre ton site accessible.

bon courage Smiley cligne
Modifié par Francois44 (20 Dec 2006 - 14:26)
Merci bien, Francois44, pour tous tes conseils avisés Smiley cligne

Je vais en tenir compte pour la suite de mes réalisations, même si je sais que ça va me demander beaucoup de boulot (notamment l'emploi des div à la place des tableaux).

Le onload ne fonctionne toujours pas chez moi mais avec les renseignements que vous m'avez filé, je devrais trouver la solution assez rapidement.

Encore merci à vous deux pour l'aide apportée Smiley cligne