jquery mobile 1.3.2。 listview autocomplete显示所选项目

时间:2014-07-01 02:17:30

标签: jquery listview mobile selection

我查看了这个post以显示所选listview li元素的值,但它对我不起作用。

我正在动态创建列表视图 -

    $.post ("/Search", { "type":"tz" }, function(data) {
    var d = data.timezones;
    var catList = "<ul id='tzlist' data-role='listview' data-filter='true' data-filter-reveal='true' data-filter-placeholder='search timezone...' data-inset='true'>";
    $.each (d, function(i, item) 
    {
        catList += "<li><a href='' onclick='seltz(this);'>";
        catList += item.tzone;
        catList += "</a></li>";

    });
    catList += "</ul>";
    $(sName).empty();
    $(sName).append(catList);
    $(sName).trigger("create");
}, "json");

onclick功能是 -

function seltz(el) {
var txt=$(el).text();
alert(txt);
$(this).closest("ul").prev("form").find("input").val(txt);
}

警报显示所点击的li项目的正确值,但输入未反映该值。 任何想法为什么这可能不起作用?

提前致谢。

RD

1 个答案:

答案 0 :(得分:0)

行。所以我搜索了其他帖子并意识到需要进行哪些更改。 首先,我更改了我的功能并删除了onclick调用 -

    $.post ("/whnwh/Search", { "type":"tz" }, function(data) 
    {
      var d = data.timezones;
      var catList = "<ul id='tzlist' data-role='listview' data-filter='true' data-filter-reveal='true' data-filter-placeholder='search timezone...' data-inset='true'>";
      $.each (d, function(i, item) 
      {
        catList += "<li>";
        catList += item.tzone;
        catList += "</li>";
      });
      catList += "</ul>";
      $(sName).empty();
      $(sName).append(catList);
      $(sName).trigger("create");
    }, "json");

然后,在html文件中,我添加了这个回调 -

    $("#timezone").on("click", "li",  function () {
        window.seltz = $(this).text();
        $(this).closest("ul").prev("form").find("input").val(window.seltz);
        $("#timezone li" ).addClass('ui-screen-hidden');
    });

这解决了在搜索输入小部件中显示所选li项的问题。

jquery开发人员 - 这是一个简单但经常需要的任务,应该添加到listview api。

我还有另外一个问题。上面的代码允许用户从列表视图中选择时区。如果我知道用户的时区,我该如何预先填充输入小部件?我尝试了与上面相同的回调,但它不起作用。有什么想法吗?

由于

RD