Sono davvero sorpreso di non aver avuto questo problema prima, ma sembra che chiamare la funzione jQueries .html() su un elemento ignori le modifiche nel DOM, cioè restituisce l'HTML nella fonte originale. IE non lo fa. jQueries .html() usa solo la proprietà innerHTML internamente.jQuery html() in Firefox (utilizza .innerHTML) ignora le modifiche DOM
È questo che dovrebbe accadere? Sono su Firefox 3.5.2. Ho un esempio qui sotto, dove non importa ciò che si modifica il valore della casella di testo in, innerHTML dell'elemento "contenitore" restituisce sempre solo il valore definito nel markup HTML. L'esempio non usa jQuery solo per renderlo più semplice (il risultato è lo stesso con jQuery).
Qualcuno ha un problema attorno al quale posso ottenere l'html di un contenitore nel suo stato attuale, ad esempio includendo eventuali modifiche al DOM in script?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<script type="text/javascript">
<!--
function BodyLoad(){
document.getElementById("textbox").value = "initial UPDATE";
DisplayTextBoxValue();
}
function DisplayTextBoxValue(){
alert(document.getElementById("container").innerHTML);
return false;
}
//-->
</script>
</head>
<body onload="BodyLoad();">
<div id="container">
<input type="text" id="textbox" value="initial" />
</div>
<input type="button" id="button" value="Test me" onclick="return DisplayTextBoxValue();" />
</body>
</html>
vostro plugin funziona bene per tutti i controlli, ma non funziona per Textarea solo in FF: - (.... Hai cambia nulla per farlo funzionare ? Ho già aggiunto 1 poiché questo mi ha aiutato molto :-) – Raja
Bastava fare una piccola modifica $ ("textarea", this) .each (function() { \t \t this.innerHTML = this.value; \t }); e ora funziona. Grazie per la soluzione :-) – Raja
@Raja - Grazie per il feedback - ha aggiornato il codice! – gnarf