用户输入几个字符后,他们可以从自动填充中选择一个建议的结果。发生这种情况时,我希望用所选结果填写搜索框。
问题是,由于jquery-mobile创建了输入元素,我不确定如何获取元素的句柄。
我需要有一个元素的句柄,因为在某些情况下我想要一个默认值,因为我没有使用listview项作为链接(它是表单的一部分。)
我发现的示例似乎只是展示了如何设置listview过滤器,但实际上并没有对结果进行任何操作。
我的列表视图: http://jsfiddle.net/EXHNp/
<div data-role="fieldcontain">
<ul class="emp_listview" data-filter="true" data-filter-reveal="true" data-filter-placeholder="Emp Code..." data-role="listview" data-inset="true">
<li><a>fred</a></li>
<li><a>mary</a></li>
<li><a>bob</a></li>
<li><a>alex</a></li>
</ul>
谢谢,尼克
答案 0 :(得分:1)
没有直接访问input元素的方法,而是需要遍历DOM。 您可以使用以下代码获取输入元素。
$("ul.emp_listview").prev().find('input.ui-input-text');
答案 1 :(得分:1)
我最终扩展了mobile.listview小部件以添加get / set功能
基本上我做了什么:
$.mobile.listview.prototype.searchElement;
$.mobile.listview.prototype.getInput = function(){
return $(searchElement).find('input').val();
};
$.mobile.listview.prototype.setInput = function(a_input){
return $(searchElement).find('input').val(a_input);
};
我已经重写了委托的listviewcreate函数,将创建的输入包装器保存在对象中。
$.mobile.document.delegate( "ul, ol", "listviewcreate", function() {
...
searchElement = wrapper;
很可能是非常错误的方式,但似乎有效。批评欢迎。