2010-08-26 15 views
5

Ho problemi a ricevere un modulo da inviare quando l'attributo nome del pulsante di invio è "Invia".Il pulsante di invio modulo non verrà inviato quando il nome del pulsante è "Invia"

Ecco il codice:

<input onclick="checkForm(document.form_29) && document.form_29.submit();" value="Submit" name="submit" type="button">

Si noti che non stiamo usando un tipo di alimentazione standard di "presentare", ma piuttosto un tipo di ingresso di "pulsante" con JavaScript viene utilizzato per inviare il modulo dopo uno script di convalida (checkForm) è tornato true.

La cosa strana è che questo non funzionerà se e solo se l'attributo name è "submit". Il problema è case-sensitive, in modo che il successivo (e qualsiasi altra denominazione, tra cui nessun attributo name) funzionerà:

<input onclick="checkForm(document.form_29) && document.form_29.submit();" value="Submit" name="Submit" type="button">

Sono stato a guardare oltre le specifiche W3C per qualche accenno di un nome riservato, ma Non ho trovato nulla. Sospetto che stia trascurando qualcosa di molto ovvio, quindi spero che alcuni di voi là fuori possano vedere qualcosa che non posso.

Grazie per qualsiasi aiuto.

+0

meglio andare con 'type =" submit "' –

+0

Sì - mi piacerebbe, ma non posso - Non entrerò nei motivi per cui - è una lunga storia, e non è una decisione Io posso fare. –

risposta

14

hai problemi perché il name essendo submit è prevalente il riferimento form.submit() funzione per quel <form>, invece form_29.submit si riferisce a quel pulsante, piuttosto che la funzione DOM submit().

+0

D'oh! Grazie! Piuttosto sicuro che sia la risposta ... –

+7

Sì, questa è tutta colpa di Netscape per aver originariamente deciso che i campi del modulo dovrebbero essere riflessi come proprietà denominate sull'oggetto 'form', piuttosto che solo la raccolta' form.elements' dove aspettati da loro. Questo, così come il riflesso degli elementi con nome su 'document' (e, in caso persino peggiore di IE,' window') ha causato infiniti problemi. Non possiamo mai essere liberi da questo cattivo mis-design ora. Accidenti al loro grasso, '' s facce. – bobince

Problemi correlati