2011-08-22 23 views
8
$('#buttonadd').click(function(){ 
      if ($counter < 10) 
      { 
       $counter++; 
       $countonlyadd++; 
       $('#buttondiv').append('<tr><td><select class="combo" name="combo'+$counter+'" style="width: 60px;" size="1"><option>UND</option><option>OHNE</option><option>ODER</option></select></td><td><input type="text" name="textbox'+$counter+'" class="textbox" value="" /><a id="removetxt" class="removetxt" style="text-decoration: none;line-height: 3;" href="#">&nbsp;[X]</a></td></tr>'); 
      }else{ 
      } 
      $('#send_count').val($countonlyadd); 
     }); 

Il mio codice non funziona in Internet Explorer e non so perché. Tutti gli altri browser sono ok ma IE no. Non aggiunge neanche 1 casella di testo.jQuery append non funziona in IE8

+0

State aggiungendo righe in una 'div', senza' table' involucro? –

+0

non lo abbiamo appena chiamato con $ e no I # non aggiungo righe –

+0

è un po 'confuso, in genere le variabili $ xxx sono per oggetti jQuery, non per i tipi Numero come lui sta usando. –

risposta

8

ya il problema è la modalità di compatibilità di IE. Funziona perfettamente in IE9 http://jsfiddle.net/NP9pG/3/ e firefox ma quando si passa alla modalità di compatibilità IE non funziona.

<div id="buttondiv"> </div> 
<div id="send_count"></div> 
<input type="button" id="buttonadd" value="add" /> 

ma questo http://jsfiddle.net/NP9pG/4/ funzionerà tho bene in modalità di compatibilità di IE

<table id="buttondiv"> </table> 
<div id="send_count"></div> 
<input type="button" id="buttonadd" value="add" /> 

ya il problema è tuo html mark-up come suggerito apportare la seguente modifica

<div id="buttondiv"> 
    <table id="tableData"></table> 
</div> 

piuttosto Aggiunge gli elementi a table anziché div elemento

codice js quindi:

$('#tableData').append('<tr><td><select class="combo" name="combo'+$counter+'" style="width: 60px;" size="1"><option>UND</option><option>OHNE</option><option>ODER</option></select></td><td><input type="text" name="textbox'+$counter+'" class="textbox" value="" /><a id="removetxt" class="removetxt" style="text-decoration: none;line-height: 3;" href="#">&nbsp;[X]</a></td></tr>'); 

speranza che aiuta

+0

il punto è che l'ho provato e non aggiunge niente a nessun browser, quindi è un po 'ingannevole –

+0

dare un'occhiata a questo violinista: http://jsfiddle.net/NP9pG/4/ funziona in firefox e IE – zulucoda

+0

grazie !!! sei fantastico –

0

Le domande sono:

  • Ti hanno definito $ contatore?
  • Avete definito $ countonlyadd?
  • Hai < table> wrapper in #buttondiv?

pensare a queste domande e se il risultato è "no", questo è il problema

Se hai < table> involucro, modificare

$('#buttondiv'). 

a

$('#buttondiv table'). 
+0

- controllare e verificare –

+0

ma non si dispone del wrapper;) – genesis

+0

Quindi considerare l'aggiunta alla tabella anziché il div direttamente. –

3

E ' sembra che tu stia aggiungendo un singolo TR a un div, il che potrebbe essere il tuo problema. Dovresti invece aggiungerlo al TBODY di una TABLE.

0

Forse è utile se si creano gli elementi per primi .. quindi si crea un oggetto per la riga, la colonna, la casella di testo, ecc. E si aggiunge l'uno all'altro. Infine aggiungi la riga al tuo div. Inoltre, è un po 'strano aggiungere una riga a un div e non a un tavolo ...

4

Sembra che si aggiunga uno tr direttamente nel quale non è un html valido in alcun browser. Altri browser non urleranno ma IE lo farà. Prova questo.

Lavorare demo

cambiamento Markup cambiamento

<div id="buttondiv"> 
    <table></table> 
</div> 

JS

$('#buttonadd').click(function(){ 
      if ($counter < 10) 
      { 
       $counter++; 
       $countonlyadd++; 
       $('#buttondiv table').append('<tr><td><select class="combo" name="combo'+$counter+'" style="width: 60px;" size="1"><option>UND</option><option>OHNE</option><option>ODER</option></select></td><td><input type="text" name="textbox'+$counter+'" class="textbox" value="" /><a id="removetxt" class="removetxt" style="text-decoration: none;line-height: 3;" href="#">&nbsp;[X]</a></td></tr>'); 
      }else{ 
      } 
      $('#send_count').val($countonlyadd); 
     }); 
+0

non funziona in nessun browser con quello .. sry –

+0

Vuoi dire che non si sta aggiungendo in nessun browser? – ShankarSangoli

+0

Accedi agli strumenti di sviluppo del tuo browser preferito, Firebug, qualunque sia, e osserva la struttura del nodo creata dal tuo codice. –