0

したがって、これは私がインターネット全体で見た問題ですが、なぜそれが機能しないのかを一生理解することはできません.

私が何をしようとしているのかを知っている人のために-.html(contentVariable)を使用して静的入力にロードしましたが、正常に動作しますが、チェックボックスの作成をforループに入れると、すべてがポットに行き、最初のチェックボックス要素が機能しているようで、スタイルが適用されています。

そのため、チェックボックスを設定するためにjsonオブジェクトを返すサーバーでクエリを実行しています。JS では、ajax を使用してこの json オブジェクトを取得し、コンテンツをループしてチェックボックスを設定しています。以下の例の 'result' 変数は 3 つの結果を返し、その側は正常に動作しています (返されたオブジェクトから実際に結果をエコーアウトしていないことに気付いた場合)。

したがって、私の推測では、.trigger() を適切な場所で使用していないか、まったく使用していません。どんな助けでも大歓迎です。

どうもありがとう。

HTML

        <!-- register page -->
    <div data-role="page" id="two">
        <script type="text/javascript" src="js/friendsList.js"></script>
        <div data-role="header">
            <h1>New Project</h1>
            <a href="#two" class="ui-btn-left"  data-rel="back" data-icon="back" data-transition="flip">Back</a>
        </div>
        <div data-role="content">
            <form id='registerUser' action="" method="POST">
                <div data-role="fieldcontain" class="checkWrap">

                </div>
                <button type="button" aria-disabled="false">Submit</button>
            </form>
        </div>
    </div><!-- /page two -->   

JS

$(document).delegate('#two', 'pageshow', function() {

var userId = localStorage.getItem('userId');
var friendsListContent = "";

$.ajax({
    url: 'http://www.mysite.co.uk/app/friends/listFriends.php',
    type: 'post',
    data: {'userId': userId},
    dataType: 'json',
    crossDomain : true,
    timeout: 5000,

    success: function(result){
    friendsListContent = "<fieldset data-role='controlgroup'><legend>Choose as many snacks as you'd like:</legend>";

        for(var i = 0; i < result.length; i++){
            friendsListContent += "<input type='checkbox' name='checkbox-1a' id='checkbox-1a' class='custom' /><label for='checkbox-1a'>Cheetos</label>";           
        }

    friendsListContent += "</fieldset>";

    $('.checkWrap').html(friendsListContent);
    $('.checkWrap').trigger('create');
    $("input[type='checkbox']").checkboxradio("create");
    },

    error: function(){
        alert('There was an error loading the data. Contact the admin.');
    }

});

});
4

1 に答える 1

0

さて、答えは、クラスと名前の数字が各チェックボックス項目で繰り返されていなかったという事実です。

forループでこれに変更しました...

friendsListContent += "<input type='checkbox' name='checkbox-" + i + "a' id='checkbox-" + i + "a' class='custom' /><label for='checkbox-" + i + "a'>Cheetos</label>";           
于 2013-02-10T15:44:38.620 に答える