0

そのため、いくつかの新しい jQuery Mobile 手法に行き詰まっています。必要に応じて喜んで詳細を追加しますが、これをより高いレベルに維持しようとしています. 簡単にするために、ここにワークフローがあります

  1. フォームに記入して送信することで「もの」を作成するページ 1
  2. まだ1ページ目 次に、「もの」を検索すると、すべての素敵なJSONがテーブルに返されます
  3. 素敵なテーブルで、編集ボタンを押して「もの」を編集できます

これは私が立ち往生しているところです。新しいページのスケルトンを作成できますが、フォームに JSON を再入力できません。console.log を実行して、新しいページに移動していることを確認できるので、アクセス可能です (ただし、新しいページの jqm の概念は多少異なりますか?)

    $(function(){
        $('.resultsLocation').on('click', '.editLocation', function(){
            var ID = $(this).parent().siblings(':first').text();
            var wrapper = {};
            var location = {};
            wrapper.location = location;
            location.id = ID;
        $.ajax({
            type: 'POST',
            url: '/web/service/' + 'locationService' + '/' + 'getLocation',
            dataType: 'json',
            async:false,
            data: JSON.stringify(wrapper),
            success: function(msg) {
            var newPage = $("<div data-role='page' id='page' data-theme='a'>" + "<div id='content' data-role='content'>" + "<div data-role='fieldcontain'><label for='name'>Name</label><input type='text' name='name' id='name'>" + "</div> </div></div>" );
            var Name = msg.location.name;
            newPage.appendTo($.mobile.pageContainer);
            if(msg.success) {
                $.mobile.changePage('#page');
                //passes entire JSON string
                console.log(JSON.stringify(msg.location));
                //one more time to make sure
                console.log('NEW PAGE' + Name);
                //not populating field w/value
                $("#name").val(Name);
            }
        },
        error: function(msg) {
            alert('oh shit');
        }

        });
    });
    });

次の質問があります。

  1. これを行うより良い方法はありますか?別の (別のファイル) テンプレート化されたページにユーザーを送信したいですか?
  2. 編集するデータは、作成するために記入したのと同じフォームに入力されるため、何らかの方法でフォームを複製した方がよいでしょうか (.clone() が正しいかどうかはわかりません - 私が試したときに奇妙な問題がありました) - する必要がありますvar newPage にすべての HTML マークアップを記述するよりも優れた方法
  3. データをログに記録できるのにアクセスできないのはなぜですか$('#name').val(Name);
4

0 に答える 0