9

Sto provando a creare tabella modificabile lato client. Ecco il mio codice. Funziona in Chrome, Firefox ma non in IE. C'è qualcosa di più da fare con lo script per IE?contenteditable non funziona in IE 10

<script type="text/javascript"  src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script> 
$(document).ready(function() { 

$("td").click(function(){ 
if($(this).attr("contentEditable") == true){ 
    $(this).attr("contentEditable","false"); 
} else { 
    $(this).attr("contentEditable","true"); 
} 
}) 
}); 
</script> 

<p> 
<table id='transitTable' border="1" cellspacing="2" cellpadding="2" class='display' width="400"> 
<tr id='1'> 
<td >H1</td> 
<td >H2</td> 
<td >H3</td> 
<td >H4</td></tr> 
<tr id='2'> 
<td >R1</td> 
<td >R1</td> 
<td >R1</td> 
<td >R1</td></tr> 
<tr id='3'> 
<td >R2</td> 
<td >R2</td> 
<td >R2</td> 
<td>R2</td></tr></table></p> 

risposta

12

ci sono molti elementi in IE, che non possono avere contenteditable affacciati direttamente. Tuttavia, è possibile avvolgere l'intero table in un contenuto modificabile div.

<div contenteditable="true"> 
    <table> 
     ... 
    </table> 
</div> 

Questo sarà make all the cells in the table editable. Sebbene in alcuni browser (FF) la visualizzazione risulti un po 'caotica a causa delle maniglie di modifica del tavolo mostrate.

Un'altra possibilità è aggiungere ad esempio un contenuto modificabile span o div a ogni td.

+0

grazie Teemu. Ha funzionato. :) –

+0

@Teemu: hie. Cosa succede se voglio rendere l'inputbox non modificabile? contenteditable = "false" non funziona in IE9. Funziona bene con il cromo. – Dharmraj

+0

@Dharmraj Puoi usare ad esempio 'readonly =" true "'. – Teemu

4

IE non è una risposta contenteditable all'interno del tag td.

Si può provare:

<td id="my-content" class="editable"> 
    <div contentEditable="true" style="width: 100%; height: 100%;"> 
     ... 
    </div> 
</td>