Textfield不显示来自javascript函数的变量

时间:2016-04-05 13:23:12

标签: javascript jquery html cordova jquery-mobile

我试图从数据库中显示数据(它在表格中的动态页面上显示),并将其作为不同html页面上的文本字段的值(map.html)。

该值将是某种邮政编码/地址,我希望它进入目的地文本字段中的我的谷歌地图页面。因此,当用户检查事件的位置时,他们按下“在地图上查看”按钮,这将打开地图页面,并且事件中的数据应该已经填充在文本字段中。

然而,没有任何东西出现,而是它仍然是空白的,即使我只是放入一些虚拟文本它仍然没有填充。我知道正在提取位置值,因为警报正确显示了位置,但问题是它是否填充在文本字段中。

我正在使用JQuery Mobile / Cordova / JavaScript / JQuery / HTML。该应用程序是一个单页结构,但map.html除外,它有自己的页面。

有什么想法吗?

获取位置值:

 $(document).on("click", ".btnMap", function(e){
    var location = $(this).data("rowlocation");
     viewMap(location);
 });

按钮片段:

<a data-rowlocation='" + response.rows.item(i).Location + "' href='map.html' onclick='viewMap(location)' data-role='button' rel='external' data-mini='true' class='btnMap'>View on Map</a></td></tr>"

viewMap功能:

function viewMap(location) {
alert(location);
$("#target-dest").val(location);
}

HTML:

<input type="text" name="target-dest" id="target-dest"  />

2 个答案:

答案 0 :(得分:1)

将位置传递到新页面的最简单方法 - 使用现有代码将位置作为查询字符串附加到链接中的href。

 <a ...href='map.html?loc='" + response.rows.item(i).Location + "'...

然后在目标页面上 - 使用JS从URL中获取查询字符串,将其从UURL的其余部分拆分并传递给文本框。

//js on destination page
var locn=location.href;
var locationPortions = locn.split("?loc=");
$('#target-dest").val(locationPortions[1]);

答案 1 :(得分:0)

由于此触发器点击了<a>,因此该链接导致map.html页面加载,从而无法更新文本框内容:

<a ...href='map.html'...

这比onclick事件更优先。您需要将链接更改为按钮并将该功能作为onclick事件触发,或者阻止链接执行其正常功能,因为其他海报已经注意到e.preventDefault()。