Test d'un input text dynamique avec js
Bonsoir,
J'ai un problème avec le test d'un input text dynamique. En effet, dans le code ci-joint l'utilisateur peut à son grée ajouter ou pas des éléments AutreNo...le souci est que je n'arrive pas à trouver la bonne parade me permettant de vérifier que les champs (pouvant varier de 1 à 5) sont de type numérique... en gros j'aimerais pouvoir effectuer le même test que l'input type NoContenant (qui lui fonctionne), le champ de ce dernier devient jaune si la saisie n'est pas numérique (ex.: toto).
Qui a une idée sur comment contrer cette problématique ?
Je vous remercie d'avance pour votre aide.
A+
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
| <html>
<head>
<title>Test de vérification de formulaire</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<script language="javascript">
//<--
function couleur(obj) {
obj.style.backgroundColor = "#FFFFFF";
}
function check() {
var msg = "";
if (document.form1.NoContenant.value != "") {
var valeur = document.form1.NoContenant.value;
if(!(/^\d+$/.test(valeur))) {
msg += "Veuillez saisir un numéro\n";
document.form1.NoContenant.style.backgroundColor = "#F3C200";
}
}
var AutreNo = document.getElementById('T_INSERT');
var issue = 0;
for (var i=0; i<AutreNo.rows.length; i++){
alert(AutreNo.value);
if(!(/^\d+$/.test(AutreNo.rows.value))){
issue = 1;
}
}
if (issue == 1) {
msg += "Veuillez saisir un numéro\n";
}
if (msg == "") return(true);
else {
alert(msg);
return(false);
}
}
var Compteur = 0;
function Delete_Ligne( obj_){
var Parent;
var Obj = obj_;
if( Obj){
do{ //-- tant que pas la balise <TR>
Obj = Obj.parentNode;
}while( Obj.tagName != "TR")
Parent = Obj.parentNode; //-- Recup du parent
if( Parent){ //-- Suppression de la ligne
Parent.deleteRow( Obj.rowIndex)
--Compteur;
}
}
}
function Create_Ligne(){
if (Compteur <5){ //-- compteur pour limiter le nb de champ texte à 5 max
var O_Table = document.getElementById('T_INSERT'); //-- Get objet tableau
var NbrLigne = O_Table.rows.length; //-- Get nombre de ligne du tableau
var Pos = NbrLigne; //-- Position d'insertion
O_Row = O_Table.insertRow( Pos); //-- Insertion d'une ligne
Compteur++; //-- Insertion d'une cellule
O_Cell = O_Row.insertCell(0); //-- Insertion d'une autre cellule
O_Cell.innerHTML = 'Autre N°:';
O_Cell = O_Row.insertCell(1);
O_Cell.innerHTML = '<input type="text" name="AutreNo[]" size="5" />';
O_Cell = O_Row.insertCell(2);
O_Cell.innerHTML = '<input type="button" value=" - " onClick="Delete_Ligne(this)">';
}
}
//-->
</script>
<form action="page.html" method="post" enctype="application/x-www-form-urlencoded" name="form1" onSubmit="return check();">
<table>
<td>Numéro:
<input type="text" name="NoContenant" size="4" onKeyUp="javascript:couleur(this);" /></td>
</tr>
</table>
<table border="0">
<table id="T_INSERT">
<tr>
<td>Autre N°:</td>
<td><input type="text" name="AutreNo[]" size="5"/>
<td><input name="button" type="button" onClick="Create_Ligne()" value=" + ">
</tr>
</table>
<input type="submit" name="Submit" value="Envoyer">
</form>
</body>
</html> |