2

私はJqueryを使用するのが初めてなので、私の無知を許してください。ローカルの mysql データから動的リストを作成しました。ユーザーがリストの値の 1 つを選択すると、選択した情報の一部がテキスト ボックスに表示されます。必要な情報を収集し、さまざまな属性タグに値を設定することに成功しました。しかし、最終的にテキストボックスに添付された値の1つを取得すると、

「[対象オブジェクト]」

テキストボックスで。これをテキストに変換することについて読みましたが、サンプル演習でこれを正確にどこに置く必要があるのか​​ わかりません。誰かが私を助けることができるかどうか疑問に思っていますか?

情報をレンダリングし、値をテキスト ボックスに設定するコードのサンプルは次のとおりです。

    <script type="text/javascript">
    $(document).on('pagebeforeshow', '#index', function(){
        $("#list").empty();
        var url="http://localhost/test/login/json4.php";
        $.getJSON(url,function(json){
            //loop through deals
            $.each(json.deals,function(i,dat){
                $("#list").append("<li><a id='"+dat.dealid+"' data-restaurantid=" + dat.restaurantid + " data-image=" + dat.image + "><h1>"+dat.name+"</h1><p>"+dat.dname+"</p></a></li>");
                $(document).on('click', '#'+dat.dealid, function(event){  
                    if(event.handled !== true) // This will prevent event triggering more then once
                    {
                        dealObject.dealID = $(this).attr('id'); 
                        dealObject.restaurantid = $(this).attr('data-restaurantid');
                        dealObject.name = $(this).find('desc').eq(0).val(this);

                        $.mobile.changePage( "#index2", { transition: "slide"} );
                        event.handled = true;
                    }
                });            
            });
            $("#list").listview('refresh');
        });
    });

    $(document).on('pagebeforeshow', '#index2', function(){       

        $('#index2 [data-role="content"]').find('input#desc').val(dealObject.name);


    });

    var dealObject = {
        dealID : null,
        restaurantid : null,
        name : null,
        image : null,
        dname : null
    }    
</script>

そして、これは私がそれを表示する場所です:

<form id="test">
        <label for="desc">Description</label>
        <input type="text" value="" name="desc" id="desc"/>  
        <a data-role="button" id="submit-button" data-theme="b">Submit</a>

誰かが私を助けることができれば、私はそれを真剣に感謝します. 前もって感謝します!

4

2 に答える 2

1

あなたの主な問題は、dealObject 内の名前属性でした。名前は特殊な単語であり、オブジェクト属性名として使用できません。

あなたの場合、正しい入力に追加していましたが、dealObject.name は存在しません。また、jQuery Mobile の仕組みにより、空の要素でも "[object Object]" が返されます。

于 2013-02-20T14:33:19.940 に答える
0

val(this)テキストの値をthis オブジェクトとして設定しようとしていますeach

値を取得しようとしている場合は、次のように言うことができます

 dealObject.name = $(this).find('desc').eq(0).val();

値を割り当てる場合

dealObject.name = $(this).find('desc').eq(0).val('My Value');
or 
dealObject.name = $(this).find('desc').eq(0).val(this.something);

だからあなたのコード

    <script type="text/javascript">
    $(document).on('pagebeforeshow', '#index', function(){
        $("#list").empty();
        var url="http://localhost/test/login/json4.php";
        $.getJSON(url,function(json){
            //loop through deals
            $.each(json.deals,function(i,dat){
                $("#list").append("<li><a id='"+dat.dealid+"' data-restaurantid=" + dat.restaurantid + " data-image=" + dat.image + "><h1>"+dat.name+"</h1><p>"+dat.dname+"</p></a></li>");
                $(document).on('click', '#'+dat.dealid, function(event){  
                    if(event.handled !== true) // This will prevent event triggering more then once
                    {
                        dealObject.dealID = $(this).attr('id'); 
                        dealObject.restaurantid = $(this).attr('data-restaurantid');
                        dealObject.name = $(this).find('desc').eq(0).val();

                        $.mobile.changePage( "#index2", { transition: "slide"} );
                        event.handled = true;
                    }
                });            
            });
            $("#list").listview('refresh');
        });
    });

    $(document).on('pagebeforeshow', '#index2', function(){       

        $('#index2 [data-role="content"]').find('input#desc').val(dealObject.name);


    });

    var dealObject = {
        dealID : null,
        restaurantid : null,
        name : null,
        image : null,
        dname : null
    }    
</script>

これが役立つことを願っています

于 2013-02-19T12:21:50.967 に答える