这里有长时间的读者和第一次海报,对jQuery / jQM来说有点新鲜。
我有一个包含带有数据过滤器的Listview的表单,其中每个列表项都包含一个复选框。当我输入过滤器框并过滤项目时,后台会出现额外的无样式复选框。以下是代码示例:
<div data-role="content">
<ul data-role="listview">
<fieldset data-role="controlgroup" id="myGroup" data-filter="true" data-icon="false">
<li>
<input type="checkbox"
name="itemIds"
id="228"/>
<label for="228">
Orange
</label>
</li>
<li>
<input type="checkbox"
name="itemIds"
id="70"/>
<label for="70">
Red
</label>
</li>
<li>
<input type="checkbox"
name="itemIds"
id="71"/>
<label for="71">
Blue
</label>
</li>
<li>
<input type="checkbox"
name="itemIds"
id="72"/>
<label for="72">
Purple
</label>
</li>
</fieldset>
</ul>
</div>
我最初认为问题在于我动态生成列表的方式(即我认为我必须得到重复的复选框,因为没有样式的复选框对应于我的列表中的项目),但我能够重现问题在jsfiddle中使用上面的简单代码示例:http://jsfiddle.net/KsRb2/2/
非常感谢任何帮助。谢谢!
答案 0 :(得分:1)
此行为是jQM 1.4.0 alpha 2中的一个错误。您应该更新到1.4.0 RC1并删除ul和li标记,因为此列表应该只是列表视图或控制组,它不能同时存在。这将是最终的HTML:
<div data-role="content">
<fieldset data-role="controlgroup" id="myGroup" data-filter="true" data-icon="false">
<input type="checkbox"
name="itemIds"
id="228"/>
<label for="228">
Orange
</label>
<input type="checkbox"
name="itemIds"
id="70"/>
<label for="70">
Red
</label>
<input type="checkbox"
name="itemIds"
id="71"/>
<label for="71">
Blue
</label>
<input type="checkbox"
name="itemIds"
id="72"/>
<label for="72">
Purple
</label>
</fieldset>
</div>
你可以在这里用小提琴试试:http://jsfiddle.net/KsRb2/5/
答案 1 :(得分:0)
jQM正在创建自己的样式复选框,但保留DOM中的原始INPUT元素。当您过滤时,这会显示出来。以下CSS隐藏了这些元素:
li .ui-checkbox input{
visibility: hidden;
}
以下是您更新的小提琴: http://jsfiddle.net/ezanker/KsRb2/4/
答案 2 :(得分:0)
实际上,您只需要在fieldset中添加data-filter-reveal =“true”。无需使用CSS。