Modifier le contenu d'une cellule dynamiquement
Bonjour,
J'ai un tableau HTML dans lequel certaines cellules contiennent des "select".
J'essaie de mettre à jour via javascript les valeurs d'un select, sans y parvenir.
Ma fonction javascript CFdel() créé un nouvelle élément select afin de remplacer celui existant en supprimant les options qui étaient sélectionnées.
Lors de replaceChild j'ai une erreur. J'ai fais un display du parentNode pour voir si j'avais le bon ID.
Malheureusement voici ce que j'ai
sous IE
Sous FF
Code:
1 2
|
object HTMLTableCellElement |
Dans le console d'erreur de FF j'ai un message d'erreur:
Code:
1 2
|
Erreur*: uncaught exception: [Exception... "Could not convert JavaScript argument arg 1 [nsIDOMHTMLTableCellElement.replaceChild]" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: file:///D:/CP%20TOOL/DEV_OLD/TEST/aera.html :: CFdel :: line 128" data: no] |
J'imagine que c'est parce que le parentnode n'est pas bon, mais je ne vois pas comment le récupérer.
Voici en exemple de mon code qui constitue la table contenant l'élément select
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
Msg= '<table border=0 cellscaping=0 >'
+ '<tr><td colspan="3" align="center"><a style="font-family:verdana;font-weight:bold;font-size:11px;color:navy;">Datacenter Ressources</a></td></tr>'
+ '<tr><td><a style="font-family:verdana;font-size:11px;color:navy;">Avaliable CPC</a></td><td><td><a style="font-family:verdana;font-size:11px;color:navy;">Avaliable LPAR</a></td></tr>'
+ '<tr><td rowspan="2" id="selcpc">'
+ '<select id="smfCPC" size="8" multiple style="width:200px" title="Avaliable CPC">';
for (i=0;i<TabCPC.length;i++) {
Msg +='<option value="'+ TabCPC[i] + '">'+TabCPC[i]+'</option>';
}
Msg += '</select>'
+ '</td><td>'
....
.... |
La fonction qui devrait remplacer l'élément select.
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
|
function CFdel(Action) {
if (Action=='delCPC') {
var Div ='smfCPC';
} else {
var Div ='smfLPAR';
}
var NbNotSelect=0;
var option='';
var NotSelected = new Array();
var SourceSelect = document.getElementById(Div);
for (i=0;i<SourceSelect.options.length;i++) {
if (!SourceSelect.options[i].selected) {
NotSelected[NbNotSelect]= SourceSelect.options[i].value;
NbNotSelect++;
}
}
var NewSelect = document.createElement('select');
NewSelect.id = Div;
NewSelect.style.width = "200px";
NewSelect.size ="8";
NewSelect.multiple ="true";
for (i=0;i<NbNotSelect;i++) {
option = document.createElement('option');
option.value = NotSelected[i];
option.appendChild(document.createTextNode(NotSelected[i]));
NewSelect.appendChild(option);
}
var include = document.getElementById(Div).parentNode;
alert(include);
include.replaceChild(NewSelect,Div);
} |
Un petit coup de main m'aiderai beaucoup car je ne vois pas mon erreur
Merci