Mon script fonctionne parfaitement sous Chrome mais j'obtiens l'erreur "HierarchyRequestError" avec IE11.
J'ai regardé les réponses à ce problème sur stackoverflow.com (plusieurs questions) mais aucune ne semble correspondre à mon cas puisque je n'ai qu'un seul document.
Voici mon code:
// Ajout d'un champ
function addField(lineNb, tagType) {
tagType = typeof optionTextes === 'undefined' ? 'Data': optionTextes;
var insField = [];
insField[lineNb] = [];
var insSep = [];
insSep[lineNb] = [];
var cell = document.getElementById('params['+lineNb+']');
// Ajout d'un séparateur de champ (si fieldNb >0)
if (fieldNb > 0) {
insSep[lineNb][fieldNb] = document.createElement('select');
insSep[lineNb][fieldNb].id = 'insSep['+lineNb+']['+fieldNb+']';
insSep[lineNb][fieldNb].setAttribute('name', 'insSep['+lineNb+']['+fieldNb+']');
insSep[lineNb][fieldNb].style.minWidth = 'initial';
insSep[lineNb][fieldNb].style.maxWidth = '1em';
arrSep = makeOptions([' ', '-', '.', '+', ', ']);
xMax = arrSep.length;
for (let i=0; i<xMax; i++) {
insSep[lineNb][fieldNb].appendChild(arrSep[i]);
}
insSep[lineNb][fieldNb].selectedIndex = 0;
cell.appendChild(insSep[lineNb][fieldNb]);
}
// Suppression du séparateur de tête lorsqu'il existe
let nodesCount = cell.childNodes.length;
if (nodesCount > 2) {
let nodeId = cell.childNodes[2].id;
if (nodeId.substring(0, nodeId.indexOf('[')) === 'insSep') {
cell.removeChild(cell.childNodes[2]);
}
}
switch (tagType) {
// Définition d'une liste de choix de champ de base de données
case 'Data':
insField[lineNb][fieldNb] = document.createElement('select');
insField[lineNb][fieldNb].id = 'insField['+lineNb+']['+fieldNb+']';
insField[lineNb][fieldNb].setAttribute('name', insField[lineNb][fieldNb].id);
// Ajout des options (les tableaux optionValues et optionTextes sont crées dans 22-selectFields.php)
arrOptions = makeOptions(optionValues, optionTextes);
xMax = optionValues.length;
for (let i=0; i<xMax; i++) {
insField[lineNb][fieldNb].appendChild(arrOptions[i]);
}
insField[lineNb][fieldNb].selectedIndex = 0;
break;
// Définition d'un champ de saisie d'un texte
case 'Text':
insField[lineNb][fieldNb] = document.createElement('input');
insField[lineNb][fieldNb].id = 'insField['+lineNb+']['+fieldNb+']';
insField[lineNb][fieldNb].setAttribute('name', insField[lineNb][fieldNb].id);
insField[lineNb][fieldNb].setAttribute('type', 'text');
break;
}
// Ajout du champ de formulaire défini ci-dessus
cell.appendChild(insField[lineNb][fieldNb]);
// Ajout du bouton de suppression
cell.appendChild(fieldBtnAdd(lineNb, fieldNb, 'del'));
fieldNb++;
}
HierarchyRequestError avec IE 11
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.