将变量传递给 jQuery Mobile 中的对话框变量

Chr*_*lie 1 jquery-mobile

我有一个按钮可以打开一个包含另一个 html 文件的对话框。我希望能够做的是将变量传递给对话框。这就是我所拥有的。

var html = ""; 
var PLAN_ID = '1234';
html += "<div>"
html += '<a href="formFinal.html?Planid=' + PLAN_ID +'" data-rel="dialog" data role="button">Final</a>'
html += "</div>"
Run Code Online (Sandbox Code Playgroud)

PLAN_ID 变量是我希望推送到 formFinal.html 的变量。我可以使用以下代码在对话框上填充隐藏文本输入。

$(document).on('pageshow', '#FinalPostPage', function(e) {
  var page = $(this);
  var query = page.data("url").split("?")[1];
  var planid = query.split("=")[1];
  $("input[name=Title]",this).val(planid);    
})
Run Code Online (Sandbox Code Playgroud)

我可以使用它,但该变量直到 formFinal.html 页面加载后才会填充。我需要在页面开发时使用该变量。希望这是有道理的。

kri*_*ath 5

您可以使用localStorage此页面将数据传输到其他页面。

创建按钮时,将PLAN_ID变量作为data-*属性添加到 ,a并为其创建 id/class :

var html = ""; 
var PLAN_ID = '1234';
html += "<div>"
html += '<a href="formFinal.html" id="dialog-send" data-planid="' + PLAN_ID + '" data-rel="dialog" data role="button">Final</a>'
html += "</div>"
Run Code Online (Sandbox Code Playgroud)

click为按钮单击编写一个事件:

$(document).on("click", '#dialog-send' ,function(e) {
   //prevent default action. we dont want it to redirect. Just yet. 
   e.preventDefault();
   //set item in localStorage.
   localStorage["plan_id"] = $(this).data("planid");
   //then use changePage to redirect 
   $.mobile.changePage(this.href, {transition: 'pop', role: 'dialog'});     
});
Run Code Online (Sandbox Code Playgroud)

在您的pageshow活动中,

$(document).on('pageshow', '#FinalPostPage', function(e) {
  var page = $(this);
  //var query = page.data("url").split("?")[1];
  //get plan id from localStorage 
  var planid = localStorage["plan_id"];
  $("input[name=Title]",this).val(planid);    
});
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。