2011-09-02 31 views
20

Mam pole wyboru, które chcę ukryć na stronie. Moja oczywista pierwsza próba była następująca:Zapobieganie jquery mobile z elementu stylizacji

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

Jednak zauważyłem jquery mobile automagicznie otacza pole wyboru w div, która wygląda następująco:

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

Przypuszczam, że istnieje jakaś data- elementu to uniemożliwiłoby tę dodatkową stylizację, ale nie znalazło jej w dokumentach lub w innym miejscu. Łatwo jest przesłonić kod .ui-checkbox w css, aby go również ukryć, ale wolałby bardziej jquery mobilny standard. Czy coś takiego istnieje?

Odpowiedz

60

atrybut, który zapobiega stylizacji jest data-role="none"

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

Zobacz Jquery doc: "Zapobieganie automatycznej inicjalizacji elementów formy"

+1

ładne i łatwe .. i nadal jest poprawnym rozwiązaniem 2015, z aktualną wersją (1.4.5). http://demos.jquerymobile.com/1.4.5/forms/#Preventingautoinitiizationofformelements – gmo

7

dla przyszłych użytkowników.

Tylko w przypadku, gdy chcesz wyłączyć dla każdego elementu formularza lub formularze są ładowane dynamicznie, gdzie nie można edytować znaczników, użyj tego.

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

i dla przyszłych użytkowników funkcja ['live()'] (http://api.jquery.com/live/) jest przestarzałe na rzecz funkcji ['on'] (http://api.jquery.com/on/), tak jak w wersji 1.7 jQuery –

0

mam zbyt wiele miejsca, aby zmienić i dodać dane wejściowe-role = „none” Poniższy kod działa dla mnie:

<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>