2010-02-23 15 views
1

從隱藏字段中刪除值我有一個帶有兩個輸入的頁面:users_listusers_ids。 jquery.autocomplete用於自動完成users_listusers_ids是隱藏字段。當用戶被選擇並添加到users_list時,他的ID被添加到users_ids。一切正常。但問題是如何從user_ids刪除值,如果用戶從users_list刪除?如何使用jquery.autocomplete

腳本:

$(document).ready(function(){ 
    function formatItem(row) { 
     return row[0] + " (<strong>id: " + row[1] + "</strong>)"; 
    } 
    function formatResult(row) { 
     return row[0].replace(/(<.+?>)/gi, ''); 
    } 
    $("#users_list").autocomplete("<%= url_for(:controller => :users, 
               :action => :autocomplete_users_list) %>", 
    { 
     multiple: true, 
     matchContains: true, 
     mustMatch: true, 
     autoFill: true, 
     formatItem: formatItem, 
     formatResult: formatResult 
    }); 

    $("#users_list").result(function(event, data, formatted) { 
     var hidden = $("#users_ids"); 
     hidden.val((hidden.val() ? hidden.val() + ";" : hidden.val()) + data[1]); 
    }); 
    }); 

回答

0

看來,你的問題無關的jQuery自動完成......你想從一個序列化數組中刪除的項目。所以: 你的隱藏字段的值是這樣的:ID; anotherid; onelastid 因此,代碼是:

function remove_id_from_hidden(id) { 
    var hidden = $("#users_ids"); 
    var arr = hidden.val().split(";"); # transforms the string into an array 
    arr.splice(arr.indexOf(id), 1); # removes the item from the array 
    hidden.val(arr.join(";")); # sets the value again 
} 
0

我在那裏我存儲在選定值的ID的hiddenfield。

爲了抓住當沒有值,並且用戶已移除的值i使用:

$('input.autocomplete').blur(function() { 
    if ($.trim($(this).val()) < 1) { 
     $(this).siblings('input[type="hidden"]').val(0); 
    } 
}); 
$('input.autocomplete').autocomplete(/* autocomplete code */); 

模糊事件卡子當用戶移動時從hiddenfield至0自動完成輸入框中,然後將焦點,獨立地自動完成功能的作用。