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