2013-05-22 7 views
5

Ho utilizzato l'attributo del pulsante del pulsante HTML5 per visualizzare il mio pulsante di invio al di fuori del modulo e attivare comunque il mio invio.Un modo per supportare l'attributo di forma del pulsante/shim in IE10?

La mia forma simile a questa:

<article> 
    <header>This is my form</header> 
    <section> 
    <p>Something explaining what is happening on this form.</p> 
    <form id="myform" action="/submit" name="myform"> 
     <input type="text" name="thing"> 
    </form> 
    </section> 
    <footer> 
    <button type="submit" form="myform">Submit</button> 
    </footer> 
</article> 

ho questo lavorare bene in Chrome/Firefox/Safari, ma sono andato a provarlo in IE10 oggi e la forma non presenta!

Oltre a ridisegnare tutte le mie pagine per non utilizzare l'attributo form =, qualcuno sa come aggirare questo? Voglio che funzioni come un normale pulsante di invio all'interno di un modulo, dove premere invio nel campo di testo invierà il modulo e fare clic sul pulsante.

Vorrei evitare di aggiungere eventi di clic e di ascoltare per immettere campi di testo per attivare l'invio in JavaScript, se possibile.

+0

http://jsfiddle.net/mf63k/ - come è, Sembra funzionare in tutti i browser ?, forse hai un codice HTML o Javascript non valido da qualche parte che causa questo problema? – Anil

+1

@JustAnil Il tuo violino non funziona in IE10 per me. Il pulsante non fa niente. – Paul

+0

Ancora non supportato in IE11 –

risposta

8

Sembra che l'attributo form="myForm" non sia supportato su IE.

visualizzare la tabella qui per ulteriori informazioni: http://caniuse.com/#search=Form%20features

L'unico modo per replicare questo sarà quello di utilizzare/creare un javascript polyfill per replicare il comportamento desiderato.

È possibile trovare un elenco di cross-browser polyfills qui:
https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills

non riuscivo a trovare uno per riempire il comportamento form (ma sembrava solo per un minuto, in modo da verificare voi stessi).

Penso che dovrai scrivere il tuo polyfill personalizzato per questo.

Una semplice linea onclick sarebbe simile a questa:

<button 
    type="submit" 
    form="myform" 
    onclick="javascript:getElementById(this.getAttribute('form')).submit();" 
>Submit</button> 

JSFiddle: http://jsfiddle.net/mf63k/4/

+1

potresti voler utilizzare canisue.com come fonte del supporto elencato, è più aggiornato. http://caniuse.com/#search=Form%20features. – jmoreno

+0

@jmoreno buona idea, devo averlo risposto prima che mi sia imbattuto in caniuse, ho aggiornato la domanda con il link. Grazie! – Anil

+0

Ho trovato la tua risposta nella scheda correlata, da una duplicazione della domanda - la risposta accettata ha avuto una soluzione alternativa/polyfill – jmoreno

Problemi correlati