2011-09-02 79 views
20

我有一个复选框,我想隐藏在页面上。我明显的第一次尝试以下操作:防止jquery移动从造型元素

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

不过,我注意到jQuery Mobile的自动的包裹复选框在一个div,看起来像这样:

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

我假设有某种data-元素这会阻止这种额外的样式,但在文档或其他地方没有找到它。很容易在css中覆盖.ui-checkbox来隐藏它,但是会更喜欢jquery移动标准的方法。这样的事情存在吗?

回答

60

防止造型属性是data-role="none"

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

参见Jquery doc: “防止形式元素的自动初始化”

+1

尼斯和容易..现在仍然是一个有效的解决方案2015年,与当前版本(1.4.5)。 http://demos.jquerymobile.com/1.4.5/forms/#Preventingauto-initializationofformelements – gmo

7

对于未来的用户。

为防万一你想禁用每个表单元素或者你的表单在你无法编辑标记的地方动态加载,使用这个。

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

以及未来的用户,['live()'](http://api.jquery.com/live/)函数已被弃用,支持['on'](http://api.jquery.com/on/)函数,从jQuery版本1.7开始 –

0

我有太多的地方需要修改的输入,并添加数据角色=“无” 下面的代码对我的作品:

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