我有一个带有复选框的简单表单的奇怪问题..
第一次显示它看起来很好..但是在导航回到上一页并再次访问之后 - ui不是更新,导致没有jQuery移动样式的普通复选框..
我用Google搜索过疯狂,发现了一些像.fieldcontain();但它不起作用=(
通过敲除绑定检索数据..
有什么好主意吗?
这是代码......
<div id="searchCitiesPage" data-role="page" data-theme="a" class="page searchCities">
<header data-role="header" data-theme="b">
</header>
<div data-role="content" class="content" data-theme="a">
<script id="countyListTemplate" type="x-jquery-tmpl">
<form id="fieldform" action="form.php" method="post">
<fieldset id="fieldsetgroup" data-role="controlgroup">
{{each BoligPortal.AdSearch.postalcodesInSelectedCounty}}
<input type="checkbox" name="checkbox-${zipcode}-${timestamp}" id="checkbox-${zipcode}-${timestamp}" class="zipcodecheckbox"/>
<label for="checkbox-${zipcode}-${timestamp}">${zipcode} ${city}</label>
{{/each}}
</fieldset>
</form>
</script>
<div data-bind="template: 'countyListTemplate'"></div>
<div class="submit">
<a href="#searchCriteriasPage" class="navbutton submitPostnumre">Næste</a>
</div>
</div>
答案 0 :(得分:1)
我也有这样的问题,但在我的情况下,复选框在加载页面之前被动态重绘。我尝试过刷新:
$("input[type='checkbox']").checkboxradio("refresh");
但它给了我一个错误,说明checkboxradio尚未初始化。但是,当我尝试这样做时:
$("input[type='checkbox']").checkboxradio();
每次都使复选框显示正确。我仍然在与JQuery Mobile的黑暗中摸索,并且不能确切地说出在哪里和为什么会发生什么(我想我正在初始化复选框?),但我想我会分享下一次像我这样的人谷歌搜索他们的方式这个帖子。
答案 1 :(得分:0)
您可以添加一些javascript来重新初始化每个页面加载时复选框的jQuery Mobile标记。像这样:
<script type="text/javascript">
$(function() {
$('[data-role=page]').live('pageshow',function(){
$('#fieldform').find('input').checkboxradio();
});
});
</script>
答案 2 :(得分:0)
我怀疑这段代码
{{each BoligPortal.AdSearch.postalcodesInSelectedCounty}}
<input type="checkbox" name="checkbox-${zipcode}-${timestamp}" id="checkbox-${zipcode}-${timestamp}" class="zipcodecheckbox"/>
<label for="checkbox-${zipcode}-${timestamp}">${zipcode} ${city}</label>
{{/each}}
当您转换回页面时,再次调用。我建议在页面显示之前(在第一次加载时)拉出infomation / tags / etc.并静态显示它。因此,当向后转换时,它会显示相同的数据。
你可以使用其中一个直播活动,并在页面显示之前重新设置它,例如:
$('.zipcodecheckbox').live('pagebeforeshow',function(event, ui){
$("input[type='checkbox']").checkboxradio("refresh");
// or
$(".zipcodecheckbox").checkboxradio("refresh");
});