2011-10-10 88 views
1

我正在尋找在我的代碼中的幫助,允許自動完成,只在指定的數據數組中。所以只允許輸入auto complete數組中的數據。不知道在哪裏做。這是我的代碼。有誰可以建議?文本字段jquery自動完成 - 只允許在自動完成選項內提交

$(document).ready(function() { 
         var data = ["ActionScript","AppleScript","Asp","BASIC","C","C++","iran","Scheme"]; 
         $("#autocomplete").autocomplete(data); 
         }); 
    $('input#autocomplete').result(function (event, data, formatted) { 
         $("#result").html(!data ? "No match found!" : "Selected: " + formatted); 
        }).keyup(function() { 
         $(this).search(); 
         $(this).css("background-color","#D6D6FF");     
        }); 

      } catch (e) { } 
     }); 

回答

2

嘗試mustMatch選項(docs):

$("#autocomplete").autocomplete(data, { mustMatch: true }); 

例子:http://jsfiddle.net/prCsm/

作爲一個側面說明,這個插件已經有利於jQueryUI version的被棄用。

+0

謝謝你的回覆,但如果我完成mustMatch:true,那麼在這種情況下,它也會刪除有效的數據。例如,如果我寫了Asp01,然後在文本框中刪除完整。看到下面的鏈接和例子沒有3 http://mabp.kiev.ua/content/source/autocomplete/autocomplete.html,我想這種行爲,它不允許在有效數據後寫任何東西。任何建議都是可觀的:謝謝 – meer

0

您可以在用戶選擇特定值後簡單地禁用輸入字段。見線6中的示例代碼

例如:

$("#autocomplete2").autocomplete({ 
    url:'search.php?type=xml', 
    minchar:2, 
    delay:1000, // in milliseconds 
    onSelect:function(){ 
    $("#autocomplete2").attr('disabled', 'disabled'); 
    }, 
    type:'xml' 
}); 
0

我執行以下操作: -

  1. 進入場(的onfocus)時,設置一個標誌,以假
  2. 設置標記以在自動完成選擇事件中爲true
  3. 測試字段onblur事件中的標誌

如果確實如此,則選擇是好的,否則它是不好的,您可以將焦點返回到輸入字段。