Parcourir les elements d'une ligne crée dynamiquement dans un FORM
Bonjour,
Je crée des lignes de manière dynamique grâce a un code javascript comme suit:
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
|
//Création du 1er element de ma ligne
Td24= document.createElement('TD');
Td24.setAttribute('align','center');
element7 = document.createElement("select");
element7.setAttribute("name", "f_etude_"+compt_line);
element7.onchange=function () { recup_fct(compt_line-1); };
option72=document.createElement('OPTION');
textNod72=document.createTextNode("Choisissez");
option72.appendChild(textNod72);
option72.setAttribute("value","");
element7.appendChild(option72);
for (var t=0;t<cptarrayEtude2D;t++)
{
option72=document.createElement('OPTION');
textNod71=document.createTextNode(arrayEtude2D[t]);
option72.appendChild(textNod71);
option72.setAttribute("value",arrayEtude2D[t]);
element7.appendChild(option72); //Add option to Select
}
Td24.appendChild(element7); //Add Select to TD
element7.appendChild(option72); //Add option to Select
//Création du 2eme element de ma ligne :
Td5= document.createElement('TD');
Td5.setAttribute('align','center');
element11 = document.createElement("input");
element11.setAttribute("type", "text");
element11.setAttribute("name", "f_entrepreneur_"+compt_line);
element11.setAttribute("size", "15");
Td5.appendChild(element11); //Add Text to TD
//Création du 3eme element de ma ligne :
Td8= document.createElement('TD');
Td8.setAttribute('align','center');
element14 = document.createElement("input");
element14.setAttribute("type", "text");
element14.setAttribute("name", "f_stat_"+compt_line);
element14.setAttribute("size", "15");
Td8.appendChild(element14); //Add Text to TD |
Mon problème est que la fonction "recup_fct(X)" doit manipuler les element de ma ligne après leurs création:
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
|
function recup_fct(i)
{
var etude_current = this.DataForm.elements['f_etude_'+i].options[this.DataForm.elements['f_etude_'+i].selectedIndex].value
//var etude_current = document.DataForm.elements["f_etude_"+i].value; //cette ligne ne fonctionne pas
var arrayEtude =new Array();
var arrayEntreprise =new Array();
var arrayStatus =new Array();
//assign values to thus arrays from the jsp to JS
<%//-----------------Table of etudes 2D
for(int t=0;t<compt_ligne_JS;t++){%> arrayEtude[<%=t%>]='<%=etude_tab_JS[t]%>';<%}%>
<%//-----------------Table of Entrepreneur
for(int t=0;t<compt_ligne_JS;t++){%> arrayEntreprise[<%=t%>]='<%=entrepreneur_tab_JS[t]%>';<%}%>
<%//-----------------Table of status
for(int t=0;t<compt_ligne_JS;t++){%> arrayStatus[<%=t%>]='<%=statut_tab_JS[t]%>';<%}%>
//Nmbre de lignes recupérées
var cptarray=<%=compt_ligne_JS%>;
for (var j=0;j<cptarray;j++)
{
if(etude_current==arrayEtude[j]) var position = j;
};
// affecter leurs valeurs au colonnes statut + entreprise
element14.value=arrayStatus[position];
element11.value=arrayEntreprise[position];
/*document.DataForm.elements["f_stat_"+i].value=arrayStatus[position]; document.DataForm.elements["f_entrepreneur_"+i].value=arrayEntreprise[position]; */
} |
Mon problème se situe dans les dernières lignes du code ci dessus, quand je tente d'inserer des valeurs dans les inputs "f_stat_"+i et "f_entrepreneur_"+i, mon code me declare que :
Code:
document.DataForm.elements["f_stat_"+i].value
ou
Code:
this.DataForm.elements['f_etude_'+i].options[this.DataForm.elements['f_etude_'+i].selectedIndex].value
par exemple est null ou n'est pas un objet, je pense que cela est due au fait ces cases on été créées après la generation de la page, et donc ne figure pas dans la liste de ses element,
Alors comment pourrai je accéder a ces cases là ???