remover removeattribute remove disabled attribute atributos addattr jquery html forms

removeattribute - remove css jquery



El atributo jQuery html no funciona en IE (24)

He encontrado el mismo problema cuando html no funciona en IE.

Creo que no funciona si tienes un html no válido

Ejemplo:

Para mi caso, estoy usando un div sin una etiqueta cercana. Entonces html no válido podría ser el culpable de IE

Estoy usando listas desplegables de países y estados en mi formulario. Siempre que el usuario seleccione el país en el menú desplegable, los estados respectivos del país aparecerán en el menú desplegable de estados. Estoy poblando los estados en el menú desplegable usando la llamada AJAX. El problema es que los estados se llenan en Mozilla pero no funciona en IE. Supongo que hay algún problema en jQuery al cargar los estados en el menú desplegable de estados. El código de jQuery que estoy usando es

$(''select#edit-country'').change(function(e) { $.getJSON("loadContactUsStates",{id: $(this).val(), ajax: ''true''}, function(j){ var options = ''''; for (var i = 0; i < j.length; i++) { options += ''<option value="'' + j[i].optionValue + ''">'' + j[i].optionDisplay + ''</option>''; } <!-----I guess the problem is with the below line------------------> $("select#edit-state").html(options); })//end json });


También tenga en cuenta que si usa un prefijo tagName en su selector, es más lento que solo usar el id.

En su caso, solo use $("#edit-state").append(options)


Me encontré con el mismo problema y ninguna de las soluciones sugeridas me ayudó. Resulta que los caracteres de tabulación en la cadena pasada fueron la causa. Tan pronto como los eliminé, tanto html () como append () funcionaron bien. Supongo que no hay cadenas formateadas para IE ... hmpf.


Compruebe que cualquier JavaScript en los datos devueltos sea sintácticamente correcto.

Tenía un objeto de opciones JSON que tenía una coma al final, y eso fue suficiente para que IE se negara a ejecutarlo.


También (en mi caso) compruebe si tiene un html válido, etiquetas que no coinciden, y funcionó en Firefox y no en IE (6-8)


En IE8 ve a herramientas -> opciones de internet -> luego selecciona la pestaña avanzada . A continuación, haga clic en restablecer para restablecer todas las configuraciones de Internet Explorer.

Pensé que tenía un problema con mi código pero el problema era IE8. Esto funcionó como un regalo.

Buena suerte y espero que esto ayude.


En mi caso, los datos devueltos deben ser sintácticamente correctos. Tenía algunas etiquetas sin igual, como etiquetas sin cerrar

o ... etc.

verificar si todos los datos son correctos

si se trata de una solicitud de Ajax, entonces la forma más rápida de depuración sería agregar un área de texto fuera del área que rellenas y llenar el área de texto con los datos devueltos. luego verifique que los datos no tengan incoherencias. Jquery.html está funcionando bien con IE


¿Estás usando 1.4.2? Hay un problema con el método cleanData que utiliza entradas de caché no válidas en IE. El error y la corrección correspondiente se pueden encontrar aquí . Esto afecta las llamadas a .html()


Si está analizando xml usando jquery, y necesita html () en IE, intente esto:

var content = ($ .browser.msie)? $ (this) .context.xml: $ (this) .html ();

Esto resolvió mi problema. Espero que ayude a alguien también.

Saludos.


Tuve el mismo problema después de recibir un AJAX HTML-Request con la función jQuery.ajax () y luego intentar analizar el resultado con jQuery (html_result_data) . La solución fue quitar el encabezado y todas las pestañas y "devoluciones" en html_result_data de la siguiente manera:

success: function( data ) { // God this is ugly data = data.split("<body>")[1].split("</body>")[0]; data = data.split("/t").join("").split("/r").join("").split("/n").join(""); data = jQuery( data ); ... }


Después de horas de frustración me di cuenta de que IE no es compatible con las funciones de atributos jquery para elementos html5 que no sean div. Estaba tratando de hacer esto:

success: function (response, textStatus, XMLHttpRequest) { $response = $(response.replace(//t/g, " ")); $responseHTML = $response.find("#pageContainer").html(); $container.html($responseHTML);

Para este elemento:

<nav id="pageContainer" class="content"> </nav>

Al cambiarlo a esto, resolvió el problema:

<nav> <div id="pageContainer" class="content"> </div> </nav>


Esto es lo que funcionó para mí: (Probé en IE7 - IE9 y Chrome)

Parece que el truco para IE es usar un contenedor DIV

Html original:

<div id="dynamicMenu"></div>

secuencia de comandos jQuery:

$.ajax({ url: "/myapp/myajaxUrl.jsp", type: "GET", dataType: "html", async: false, success: function(msg) { $("#dynamicMenu").html(msg); });

Donde msg es algo así como:

<TABLE> <TBODY> <TR> <TD><LABEL for="dropdown1">OS type:</LABEL></TD> <TD> <SELECT id="dropdown1"> <OPTION selected value="">Select OS</OPTION> <OPTION value="WIN">Windoze</OPTION> <OPTION value="UX">Unix</OPTION> <OPTION value="LX">Linux</OPTION> </SELECT> </TD> </TR> </TBODY> </TABLE>

Probé .empty () .html () en vano, pero lo anterior funcionó muy bien!


El comentario de Jukums me llevó a intentar desactivar la salida de depuración de ColdFusion y luego .html () me funcionó en IE8. Para forzar la salida de depuración:

<cfsetting showdebugoutput="No">


En mi caso, fue tan fácil como cambiar la versión de jquery. Estaba usando jquery-1.3.2 y me agregaron esta línea

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"> </script>

en su lugar jquery-1.3.2 import. Sin cambiar nada en mi código fuente, la función .prepend funciona perfectamente en IE, FF y Chrome.


Como la solución no se menciona aquí: acabo de tener el mismo problema en IE8 al activar el modo de compatibilidad. La solución fue pasar un objeto jQuery a la función .html () como esta:

$("select#edit-state").html($(options));

Esto no era un problema si las opciones eran un objeto jQuery y también se construyeron como uno. Pero en el ejemplo anterior, esto debería hacer el truco, al menos para mí lo hizo.


agregar a las opciones .ajax

caché: falso,


Tuve el mismo problema y descubrí que la solución más simple era usar la función replaceWith() .


El siguiente método me solucionó el problema:

$(''Element ID OR Class'').empty().html(string);

Primero use empty() y luego configure html usando html()


Tuve un problema con IE al usar esto:

$(''#valor_total'').html(valor_total);

donde id tenía el mismo nombre que la variable pasada como parámetro. Cambiar la identificación funcionó bien:

$(''#div_valor_total'').html(valor_total);


En mi caso, tuve que cambiar el selector que era una etiqueta <figure> . Esto es lo que tuve:

HTML:

<figure id="imagen">...</figure>

JS ( no funciona ):

$("#imagen").html(res);

Y tuve que reemplazar con:

HTML:

<div id="imagen">...</div>

JS ( ¡funciona! ):

$("#imagen").html(res);


Para mí, solo pude hacer que funcionara colocando mi selección en un marcador de posición div, y luego escribí vía .html (); toda la declaración a ese div. Funciona completamente


En mi caso, el problema fue con la forma en que estaba comentando mi javascript en los datos que se están cargando.

// Works fine /* Works fine */ <!-- This causes a syntax error in IE -->

Nunca he tenido problemas para comentar así en IE antes, solo cuando uso ajax para cargarlo en una página existente. No hay problema con otros navegadores tampoco.


Agregar el atributo de no caché al controlador solucionó esto por mí.

Copiado de esta respuesta: https://.com/a/12948321/1389589


Intente usar append en lugar del método html como se detalla en esta publicación .

editar

En realidad, acabo de encontrarme con este problema yo mismo. Para mí, la respuesta fue llamar primero a vacío , luego agregar lo que tiene el mismo efecto (¿en realidad?) Que utilizar el método html.