2013-04-23 32 views
0

G'day all。我有一個表單,其中的一部分是使用jQuery Mobile的listview自動完成/數據過濾器使用本地數據的搜索框。如何訪問由data-filter =「true」創建的輸入元素

用戶輸入幾個字符後,可以從自動完成中選擇一個建議結果。發生這種情況時,我希望使用所選結果填寫搜索框。

問題是,既然jquery-mobile創建輸入元素,我不確定如何獲取元素的句柄。

我需要有一個手柄的元素,因爲我想在某些情況下有一個默認值,因爲我沒有使用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> 

謝謝,尼克

回答

1

有訪問輸入元素沒有直接的方法,而不是你需要遍歷DOM。 您可以使用下面的代碼來獲取輸入元素。

$("ul.emp_listview").prev().find('input.ui-input-text'); 
+0

謝謝,我有點用過這個,但只是.find()'元素內的小部件。 – Nick 2013-04-23 05:24:54

1

我結束了延長mobile.listview小部件添加獲取/設置功能

基本上我做了什麼:

$.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; 

很可能是非常錯誤的方式,但似乎工作。批評歡迎。

相關問題