<SCRIPT language="javascript">pour mettre à la place
<script type="text/javascript">
//----------------------------------- function Ajout_Opt( min_, max_, inc_){ max_++; // incremente pour le test var szTmp = "<option selected>---<\/option>"; // init de la liste for( var i = min_; i < max_; i+= inc_){ szTmp += "<option>" +i +"<\/option>"; // ajout option } return( szTmp); // retourne la chaine }
tab[2].innerHTML = Ajout_Opt( 1, 1000, 1);
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> <head> <title>Creation INPUT et SELECT</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <style type="text/css"> * { font-family : Verdana; font-size : 13px; } th { width : 100px; font-size : 11px; background-color : #e0e0e0; } table { border : 1px solid #c0c0c0; border-collapse : collapse; text-align : center; } </style> <script type="text/javascript"> //-- Constante pour lisibilite--// var REFERENCE = 0; var DESIGNATION = 1; var PRIX = 2; //-------------------------------- function Fct_Select( this_, dest_){ var Obj = this_; //-- Recup de la TR parent dans la TABLE while(( Obj = Obj.parentNode).tagName !== "TR"){} //-- Recup numero ligne var RowNum = Obj.rowIndex; //-- recup Valeur var Val = parseFloat( this_.options[this_.selectedIndex].value); //-- Message pour DEBUG var szMsg = 'Nous sommes sur la ligne -> ' +RowNum; szMsg +'\nValeur du SELECT(' +this_.id +') ' +Val; alert( szMsg); //-- Si dest_ en parametre alors affectation valeur if( dest_ != null){ document.getElementById( dest_ +RowNum).value = Val; //-- Replace sur ligne 0 this_.selectedIndex = 0; } } //-------------------------------------------- function Ajout_Option( obj_, min_, max_, inc_){ max_++; // incremente pour le test INF dans boucle obj_.options.length = 0; // vide le SELECT obj_.options[0] = new Option("- ? -"); //Ajoutes 1st Option for( var i min_, k 1; i < max_; i += inc_, k++){ obj_.options[k] = new Option( i, i); } } //-------------- function Ajout(){ //-- Recup SELECT et choix var O_Select = document.getElementById('liste'); var Choix = O_Select.selectedIndex; //-- Quitte si 1st ligne if( Choix < 1) return; //-- Recup data ligne select var szTmp = O_Select.options[Choix].text; var Tab = szTmp.split("|"); //-- Recup Objet Parent pour insertion var O_Parent = window.opener ? window.opener.document : window.document; var O_Table = O_Parent.getElementById('table'); //-- Creation de la ligne var RowNum = O_Table.rows.length; // Get index pour les IDs var O_Row = O_Table.insertRow(-1); //-- Creation des cellules var O_Col = []; for( var i = 0; i < 6; i ++){ O_Col[i] = O_Row.insertCell( -1); } //-- CREATION des Champs var Obj; var Ind = 0; //-- index pour les O_Col de appendChild //-- Creation INPUT et Ajout Obj = O_Parent.createElement( 'INPUT'); O_Col[Ind++].appendChild( Obj); //-- Initialisation diverses Obj.id Obj.name 'reference_' +RowNum; Obj.type = "text"; Obj.size = '12'; Obj.value = Tab[ REFERENCE]; //-- Creation INPUT et Ajout Obj = O_Parent.createElement( 'INPUT'); O_Col[Ind++].appendChild( Obj); //-- Initialisation diverses Obj.id Obj.name 'designation_' +RowNum; Obj.type = "text"; Obj.size = '30'; Obj.value = Tab[ DESIGNATION]; //-- Creation SELECT et Ajout Obj = O_Parent.createElement( 'SELECT'); O_Col[Ind++].appendChild( Obj); //-- Creation des Options Ajout_Option( Obj, 1, 100, 1); //-- Initialisation diverses Obj.id Obj.name 'qte_' +RowNum; Obj.onchange = function(){ Fct_Select( this);}; //-- Creation INPUT et Ajout Obj = O_Parent.createElement( 'INPUT'); O_Col[Ind++].appendChild( Obj); //-- Initialisation diverses Obj.id Obj.name 'puht_' +RowNum; Obj.type = "text"; Obj.size = 6; Obj.value = Tab[ PRIX]; //-- Select Remise Obj = O_Parent.createElement( 'SELECT'); O_Col[Ind++].appendChild( Obj); //-- Creation des Options Ajout_Option( Obj, 0, 100, 5); //-- Initialisation diverses Obj.id Obj.name 'remise_' +RowNum; Obj.onchange = function(){ Fct_Select( this, 'val_remise_');}; //-- Creation INPUT et Ajout Obj = O_Parent.createElement( 'INPUT'); O_Col[Ind++].appendChild( Obj); //-- Initialisation diverses Obj.id Obj.name 'val_remise_' +RowNum; Obj.type = "text"; Obj.readOnly = "readonly"; Obj.size = 4; } </script> </head> <form action=""> <select name="liste" id="liste" onchange="Ajout()" > <option value="" >-- Sélectionnez un Produit --</option> <option value="ID_0">Reference_0 |Designation_0 | 9.99</option> <option value="ID_1">Reference_1 |Designation_1 |155.5</option> <option value="ID_2">Reference_2 |Designation_2 |145.5</option> <option value="ID_3">Reference_3 |Designation_3 |100.5</option> <option value="ID_4">Reference_4 |Designation_4 |200.0</option> </select> </form> reference_ | designation_ | qte_ | puht_ | remise_ | val_remise | </html>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questiondocument.getElementById( dest_ +RowNum).value = Val;
<script type ="text/javascript" src= "fonction.js"></script>
onchange="window.opener.Ajout( this)"on voit que dans ce cas on a ajouté window.opener , c'est simplement pour dire ou il faut aller chercher la fonction et le paramètre this, c'est pour connaitre l'objet à analyser qui n'existe pas dans la page d'origine de la fonction.
//-------------------- function Ajout( this_){ //-- Recup SELECT et choix var O_Select = this_; // MODIF ICI document.getElementById('liste'); var Choix = O_Select.selectedIndex;
if( dest_ != null){