2010-08-23 14 views
7

Ho un modulo con due pulsanti. Il primo è nascosto usando Javascript.Invio non invia modulo in IE a causa del pulsante nascosto

Quando premo invio in un campo di testo in IE, il modulo non viene inviato. Presumo che sia perché ha scelto il primo pulsante come pulsante di invio predefinito, ma dal momento che quel pulsante è nascosto non funziona.

Ho risolto questo inviando il modulo su un evento di inserimento keydown Javascript. Tuttavia, questo inoltra il modulo anche se l'utente preme Invio per selezionare un elemento dal menu a tendina del completamento automatico del browser.

example autocomplete dropdown

Come invio il modulo a entrare in IE, senza disturbare la funzionalità di completamento automatico?

+0

perché hai un pulsante nascosto? –

+0

Quando Javascript è attivo, il modulo viene automaticamente inviato quando un utente seleziona un valore da una casella di riepilogo e il pulsante è nascosto. Quando Javascript è disattivato, l'utente può utilizzare il pulsante per inviare il modulo dopo aver selezionato un valore. – Sjoerd

+0

Trovo le risposte a queste domande una meravigliosa visione dello sviluppo web pratico ... – Sebastian

risposta

5

Abbiamo avuto un problema simile alcuni anni fa, e AFAIR, abbiamo aggiunto un pulsante aggiuntivo all'inizio del modulo, che esegue sempre l'azione di invio predefinita quando si preme invio in IE. Quel pulsante può essere "quasi nascosto" dandogli un'immagine trasparente 1x1.

0

È possibile aggiungere ulteriore pulsante per mantenere presentare funzionalità del pulsante in modo seguente:

<![CDATA[<!--[if IE]>]]> 
       <input type="text" style="display: none;" disabled="disabled" size="1" /> 
      <![CDATA[<![endif]-->]]> 
10

Prova pulsante con seguente classe di nascondere:

.hidden-element { 
    width: 0px; 
    height: 0px; 
    position: absolute; 
    top: -99999px; 
    left: -99999px; 
} 
+0

È un po 'tardi per aggiungere una risposta a un post di 1 anno, mentre c'è già una risposta accettata. – Charlie

+4

@Charlie Non sarei d'accordo . Altre persone potrebbero trovare utile questo particolare commento. – Vic

+0

Prima soluzione funzionante per IE6 ... –

5

ho riparato da opacità 0 come:

<input type="submit" style="width: 0px; height: 0px; opacity: 0;" id="submitBtn" name="submitBtn"> 
Problemi correlati