students - dojo karate do
Problemas de HTML interno en DOJO durante la creación, seleccione y opciones? (1)
Al crear una opción de selección en dojo
dojo.byId("it1").add(dojo.create("option", { value:''1'',innerHTML:''Iteration 1'' }));
Recibí un error de argumento Inválido en IE8, el resto de los navegadores funciona bien.
Esto se debe a que los navegadores han implementado una especie de mecanismo de conmutación por error. O tal vez incluso los estándares han cambiado, no estoy seguro de cuál es. El hecho es que, en los navegadores más antiguos, el elemento de option
tenía una implementación extraña. Considere la siguiente creación programática de una nueva option
DOM:
text=''Iteration 1'';
value=1;
defaultSelected = false;
selected=false;
document.getElementById(''myselect'').options.add(
new Option(text, value, defaultSelected ,selected)
);
Ver http://msdn.microsoft.com/en-us/library/ie/dd757810(v=vs.85).aspx
La API también tiene argumentos, lo que indica si la opción está seleccionada o no. Pero la parte interesante aquí es el text
parámetro
Se traduce aproximadamente en
var opt = document.createElement(''OPTION'');
opt.text = text;
opt.value = value;
Encontrará que las selecciones creadas mediante programación (utilizando el método innerHTML
) no funcionarán correctamente en IE antes e incluyendo IE8. El elemento simplemente no está conectado a su formulario principal y, por lo tanto, no se envía al servidor en el envío.