2010-06-16 56 views
2

,我們通過調用函數。結果這樣jquery的自動完成功能單擊使用jQuery自動完成獲取隱藏的價值

$("#suggest").result(function(event, data, formatted) { 
    $('#hidden').val(data[1]); 
}); 

獲取隱藏的價值,當我們選擇從自動提示列表,然後按進入選項這是唯一有用的。我需要的是通過輸入完整的單詞而不選擇它並單擊確定按鈕來輸入選項?但我總是變得空虛。

<input type="text" id="suggest" /> 
<input type="button" value="Ok" onclick="GetValue()" /> 
<input type="hidden" id="hidden"/> 
function GetValue() 
{ 
    //get hidden field value - getting empty 
    var hid=document.getElementById('hidden').value; 
} 
+0

你有沒有試過'alert(hid);'? – Reigel 2010-06-16 08:00:46

回答

1

編輯:根據您的意見,你需要做這樣的事情:

var users = [ {value: "John", id: 1}, {value: "George", id: 2}, 
       {value: "Jim", id: 3} ]; 

var usersArray = $.map(users, function(el) { return el.value; }); 


$(function(){ 

    $("#suggest").autocomplete(usersArray); 

    // This handles an autocomplete selection 
    $("#suggest").result(function(event, data, formatted) { 
    UpdateValue(); 
    }); 

    // This handles the manual entry case 
    $("#suggest").keyup(function() { 
    UpdateValue(); 
    }); 

}); 

function UpdateValue() 
{ 
    var name=$("#suggest").val(); 
    $("#DebugField").text(name); 
    $.each(users, function(n, item) { 
     if (item.value == name) { 
      $('#hidden').val(item.id); 
      $("#DebugField").text(item.id); 
     } 
    }); 
} 


function GetValue() 
{ 
    //get hidden field value - getting empty 
    var hid=$('#hidden').val(); 
    alert(hid); 
    return false; 
} 

看到它運行here

+0

謝謝,但這會給文本框的值,在自動提示列表中的bcos im顯示用戶名和後端即時通訊將其用戶ID存儲在隱藏字段中。我需要用戶按鈕onclick按鈕 – gabriel 2010-06-16 08:51:49

+0

上述代碼將更新隱藏字段的值,無論何時自動填充框的值會更改,無論是通過鍵入還是自動完成選擇。 GetValue函數不需要改變。看到它運行在http://jsbin.com/oxopa3 – kgiannakakis 2010-06-16 09:33:29

+0

是的,它會更新隱藏的字段值。但我的意思是說即時通訊顯示autosuggest列表的「用戶」,並在後端每個用戶有他們的用戶名,所以在隱藏的領域,我需要「用戶名」而不是「用戶名」 – gabriel 2010-06-16 09:39:34

0

算法:

ONSELECT:

先決條件:確保你成功
獲得該項目(鍵,值)
存儲返回標籤和值{人名和人的ID}值在一個變量中。 {a = item.value}


現在將項目值更改爲item的標籤{item.label = item.value} 使用該值將其設置爲一些隱藏變量,如document.personform.hiddenfield = a。
然後提交表單或通過ajax發送。