2011-09-02 11 views
20

Ho una casella di controllo che desidero nascosta nella pagina. La mia ovvia primo tentativo è stato il seguente:impedisce jquery mobile dall'elemento di stile

<input type='checkbox' style='display:none' /> 

Tuttavia, ho notato jQuery Mobile avvolge automagicamente la casella di controllo in un div che assomiglia a questo:

<div class='ui-checkbox'> 
    <input type='checkbox' style='display:none;' /> 
</div> 

presumo che ci sia un qualche tipo di data- elemento ciò impedirebbe questo stile aggiuntivo, ma non lo ha trovato nei documenti o altrove. È abbastanza semplice sovrascrivere lo .ui-checkbox in css per nasconderlo, ma preferiremmo un approccio standard più jquery mobile. Esiste una cosa del genere?

risposta

60

L'attributo che impedisce stile è data-role="none"

<input type='checkbox' style='display:none' data-role="none" /> 

Vedere il Jquery doc: "Prevenire auto-inizializzazione elementi del modulo"

+1

Nizza e facile .. ed è tuttora una valida soluzione in 2015, con la versione corrente (1.4.5). http://demos.jquerymobile.com/1.4.5/forms/#Preventingauto-initializationofformelements – gmo

7

Per gli utenti futuri.

Nel caso in cui si desideri disabilitare per ogni elemento del modulo o i moduli si caricano in modo dinamico dove non è possibile modificare il markup, utilizzare questo.

 $(document).on('pagebeforecreate', function(e) { 
      $("input, textarea, select", e.target).attr("data-role", "none"); 
     }); 
+7

e per i futuri utenti futuri, la funzione ['live()'] (http://api.jquery.com/live/) viene deprecato a favore della funzione ['on'] (http://api.jquery.com/on/), a partire da jQuery versione 1.7 –

0

Ho troppi posti per cambiare gli ingressi e aggiungere dati-role = "none" Il seguente codice funziona per me:

<script> 
     $(document).bind('mobileinit',function(){ 
      $.mobile.page.prototype.options.keepNative = "select,input"; 
     });   
    </script> 
    <script src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script>