首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery mobile -使用pageinit刷新复选框

Jquery mobile -使用pageinit刷新复选框
EN

Stack Overflow用户
提问于 2012-02-20 13:16:28
回答 2查看 3.6K关注 0票数 6

我正在使用从另一个页面上的链接列表调用一个页面(参见下面的代码)。像这样的列表

代码语言:javascript
复制
<ul data-role="listview" data-theme="g">
      <li><a href="test.html">test</a></li>
</ul>

下面的代码是test.html页面。

我在这些页面上使用jquery mobile。通过单击链接加载页面时,只有前3个复选框后的复选框看起来会正确刷新(显示为选中)。前三个复选框始终显示为未选中状态,它们的checked值设置为false。不同寻常的是,如果我将if语句放在将checkbox设置为true的语句后面,checkbox check值的计算结果为true,但在呈现的页面上显示为false,您可以在web检查器的elements区域中查看check值。当您刷新页面时(使用F5或地址栏附近的刷新按钮),复选框会按照预期进行刷新。任何帮助都将不胜感激。虽然下面的示例代码似乎只是将所有复选框设置为选中的值,但我实际上(在我的实际页面中)是基于来自记录集的数据来设置它们的值,所以我不能只将大量设置为true并刷新。我必须遍历记录集并相应地设置复选框值。下面的代码只是我遇到的错误的简单再现。谢谢!

代码语言:javascript
复制
<!doctype html> 
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>Checkbox</title>
        <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1">
            <link rel="stylesheet" href="jqm1/jquery.mobile.structure-1.0.1.min.css" />
            <script src="jqm/jquery-1.7.1.min.js"></script>
            <script src="jqm/jquery.mobile-1.0.1.min.js"></script>

        </head>
        <body>
        <div id="loadCB" data-role="page">
            <script type="text/javascript">
                $("#loadCB").live('pageinit', function() {
                    // do something here...


                    for (i=0;i<=5;i++)
                    {
                    $("#checkbox-"+i).prop("checked", true);
                    $("#checkbox-"+i).prop("checked", true).checkboxradio("refresh");
                    }


                });
            </script>

            <article data-role="content">


                <form id="frmR">
                    <input type="checkbox" name="checkbox-0" id="checkbox-0" class="custom" value="0"/>
                    <label for="checkbox-0">checkbox-0</label> 
                    <input type="checkbox" name="checkbox-1" id="checkbox-1" class="custom" value="1"/>
                    <label for="checkbox-1">checkbox-1</label> 
                    <input type="checkbox" name="checkbox-2" id="checkbox-2" class="custom" value="2"/>
                    <label for="checkbox-2">checkbox-2</label> 
                    <input type="checkbox" name="checkbox-3" id="checkbox-3" class="custom" value="3"/>
                    <label for="checkbox-3">checkbox-3</label> 
                    <input type="checkbox" name="checkbox-4" id="checkbox-4" class="custom" value="4"/>
                    <label for="checkbox-4">checkbox-4</label> 
                    <input type="checkbox" name="checkbox-5" id="checkbox-5" class="custom" value="5"/>
                    <label for="checkbox-5">checkbox-5</label> 

                    <input type="submit" value="Set Rules" />
               </form>             


            </article>           
        </body>
     </div>   
    </html>
EN

回答 2

Stack Overflow用户

发布于 2012-02-23 13:38:58

检查此代码

代码语言:javascript
复制
$("#loadCB").live('pageinit', function() {
                    // do something here...


                    $("input[type='checkbox']").attr("checked",false).checkboxradio("refresh");


                });
票数 6
EN

Stack Overflow用户

发布于 2012-02-21 01:17:07

我写了一个相当全面的小部件列表和刷新它们的方法:http://andymatthews.net/read/2011/12/14/Refreshing-jQuery-Mobile-listviews,-buttons,-select-dropdowns,-and-input-fields

也许这能回答你的问题?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9356485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档