2013-10-29 9 views
5

Stavo controllando un modulo che ho creato sul mio iPad e sembra che l'aggiunta di disabled a un tag <button> non disabiliti il ​​pulsante.iOS Safari <pulsante disattivato></button> non disabilita?

L'aggiunta di disabled a un tag <input> funziona ma non <button>.

Così

<input type = "text" disabled />

opere, ma

<button disabled>Hola</button>

non lo fa. Pensieri su come risolvere questo problema? O è solo un bug di safari?

risposta

1

È possibile utilizzare l'attributo disabled su un tag <input /> ma non su un tag <button />. Button non è ufficialmente ammortizzati, ma perché si può fare

<input type="submit" value="Click Me"> 

per le funzionalità di invio del modulo e

<input type="button" value="Click Me"> 

per un pulsante generica plain-old non v'è alcun vero e proprio punto di avere un intero tag diverso. Inoltre è possibile disattivare sia un pulsante regolare invio e con l'aggiunta di disabled

<input type="submit" value="You can't Click Me" disabled> 
<input type="button" value="Click Me" disabled> 
0

Ho controllato questo sul mio iPad residenziale. Hai ragione che il tag button non funziona, ma questi:

<input type="button" value="Go on, click me!"> 

e

<input type="submit" value="Go on, click me!"> 

Spero che risolve il problema. Qualsiasi cosa tu possa fare con un <button></button>, puoi farlo con uno <input type="button"> o <input type="submit">. Deve essere un bug di Safari iOS.

EDIT:

Button fa accettare disabled in Chrome, così ho colpa Safari su iOS.

EDIT:

Vedi Fiddle.

+0

Non ci ho pensato molto, ma un amico me ne ha parlato e ho iniziato a guardarlo e sembra davvero un bug in piena regola. Nessun altro ne parla davvero o almeno così sembra. So che puoi usare '' ma questa sembra una caratteristica piuttosto semplice da avere nel tuo browser. Sai, rispettando le caratteristiche che sono state stabilite molti anni fa. –

+0

@Nick Chapman È piuttosto sfortunato che nella nostra età connessa su Internet (che è magico), dobbiamo ancora preoccuparci della compatibilità del browser. Ma lo facciamo. Quindi, puoi semplicemente ignorare quegli stupidi browser che rovinano o puoi provare ad accoglierli. In genere, la soluzione migliore è un compromesso. Non dovresti perdere tempo a cercare di supportare gli Elinks, ma ti preoccupare di IE perché molte (troppe) persone lo usano ancora. –

+0

Spero che tutto questo aiuti. Se stai facendo qualcosa con i pulsanti disabilitati, è meglio attenersi al pulsante "" perché, come vedi, iOS Safari in qualche modo riesce a romperlo. Ritornerò tommorow (EST) se avete ulteriori problemi/domande. Fino ad allora, buona notte! –

2

Questo bug ISO Safari è terribile. L'IPad supporta il tag di intermittenza? Per quanto ne sappia, non puoi davvero dare uno stile ai numeri <input> come puoi a <button>. Quindi se hai un con uno in stile o <img> nella parte che button, <input> non è la strada da percorrere. Invece fingilo, fai in modo che il tuo pulsante si comporti come se avesse l'attributo 'disabilitato'.

Aggiungere una classe al pulsante:

<button class='ipad-disabled'></button>

quindi verificare se tale pulsante è quella classe di 'ipad-disabile', se lo fa, non accadrà nulla quando si fa clic su tale pulsante:

$('button').on('click', function() { 
    if (!$(this).hasClass('ipad-disabled')) { 
     doSomething(this); 
    } 
}); 

Poi, quando è necessario il <button> da abilitare rimuovere il 'ipad-disabled' classe:

$('button').removeClass('ipad-disabled'); 
Problemi correlati