我在网上搜索了很多,但找不到任何解决方案。我正在制作一个webapp,我想要2个文本框来从用户那里获取数据。我想在此文本框中使用自动完成功能。自动完成的标记列表可在本地获得。我尝试了listview,但我想要的是,在用户从自动完成提示中选择一些选项后,文本框应该具有所选值,并且通过某个对象,我应该获得javascript / php使用的文本框的值。这是一个非常基本的事情,但我无法做到。请帮帮我
我试过这个jsfiddle.net/ULXbb/48/。但问题在于,在我在1个列表视图中选择某个内容后,两个listview都获得了相同的值。
答案 0 :(得分:7)
为了不向两个搜索输入添加相同的值,您需要使用.closest()
,.next()
,.prev()
和.find()
来定位它们。 jQuery-Mobile以不同的方式增强了数据过滤器的列表视图。
<强> Demo 强>
<form>
<input>
</form>
<ul data-role="listview">
<li>
<a>text</a>
</li>
</ul>
form
所在的input
位于ul
的同一级别。要定位input
框,您需要使用.prev('form').find('input')
。检查演示和下面的新代码。
$("input[data-type='search']").keyup(function () {
if ($(this).val() === '') {
$(this).closest('form').next("[data-role=listview]").children().addClass('ui-screen-hidden');
}
});
$('a.ui-input-clear').click(function () {
$(this).closest('input').val('');
$(this).closest('input').trigger('keyup');
});
$("li").click(function () {
var text = $(this).find('.ui-link-inherit').text();
$(this).closest('[data-role=listview]').prev('form').find('input').val(text);
$(this).closest('[data-role=listview]').children().addClass('ui-screen-hidden');
});
答案 1 :(得分:0)
谢谢@ user714852我已经扩展了您的答案,只需在脚本标记中添加以下行:
$("#mylist li" ).addClass('ui-screen-hidden');
它会创造奇迹。