2012-02-20 3 views
6

Я вызываю страницу (см. Код ниже) из списка ссылок на другой странице, используя. Список, подобный этомуJQuery mobile - Обновление флажков с помощью pageinit

<ul data-role="listview" data-theme="g"> 
     <li><a href="test.html">test</a></li> 
</ul> 

с нижеследующим кодом является тестом.html.

Я использую jquery mobile на этих страницах. Только флажки после первых 3 флажков кажутся обновленными (отображаются как отмеченные), когда страница загружается щелчком по ссылке. Первые три флажка всегда кажутся невыбранными, а их проверенное значение установлено на false. Необычно, что если я помещаю оператор if сразу после инструкции, устанавливающей флажок в true, флажок checked проверяется на значение true, но на отображаемой странице он выглядит ложным, и вы просматриваете проверенное значение в области элементов веб-инспектора. Когда вы обновляете страницу (используя F5 или кнопку обновления рядом с адресной строкой), флажки обновляются так, как вы ожидали. Любая помощь будет принята с благодарностью. В то время как приведенный ниже пример кода просто устанавливает все флажки для отмеченного значения, я действительно (на моей реальной странице) устанавливаю их значение на основе данных из набора записей, поэтому я не могу просто установить массовый параметр в true и refresh. Мне нужно прокрутить набор записей и соответственно установить значения флажка. Код ниже - это просто воспроизведение ошибки, которую я имею. Спасибо!

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

ответ

3

Я написал довольно полный список виджетов и метод, с помощью которого вы обновите их: http://andymatthews.net/read/2011/12/14/Refreshing-jQuery-Mobile-listviews,-buttons,-select-dropdowns,-and-input-fields

Возможно, что будет ответить на ваш вопрос?

+0

Спасибо за ответ. Похоже, что я уже использую аналогичный код, который вы показываете на своей странице. Мои флажки просто не отображаются правильно, когда страница загружается с другой страницы. –

6

Проверить этот код

$("#loadCB").live('pageinit', function() { 
        // do something here... 


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


       }); 
+0

Гарри, Спасибо за отзыв. Хотя это установит все флажки для проверки, это не решит проблему в приведенном выше примере. Я устанавливаю значения флажка на основе набора записей, возвращаемого из базы данных, поэтому я не могу установить для всех значений значение true. Мне нужно прокрутить записи и установить флажки, которые нужно проверить для проверки. Моя проблема в том, что первые три флажка никогда не обновляются правильно. Благодарю. –

Смежные вопросы