所以我陷入了一些新的 jQuery Mobile 技术。如果需要,我很乐意添加更多细节,但会尝试将其保持在更高的水平。为简单起见,这是一个工作流程
- 通过填写表格并提交来创建“事物”的第 1 页
- 仍然在第 1 页然后您可以搜索您的“东西”,它会在表格中返回所有漂亮的 JSON
- 在漂亮的表格中,您可以点击编辑按钮并编辑您的“东西”
这就是我卡住的地方。我可以创建新页面的骨架,但无法使用 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');
}
});
});
});
我有以下问题:
- 有一个更好的方法吗?就像将用户发送到一个单独的(不同的文件)模板页面?
- 由于您要编辑的数据将填充您为创建它而填写的相同表单,因此以某种方式克隆表单会更好吗(不确定 .clone() 是否正确 - 当我尝试时遇到奇怪的问题) - 一定是比在 var newPage 中编写所有 HTML 标记更好的方法
- 为什么我可以记录数据但不能访问它
$('#name').val(Name);