2013-07-15 26 views
0

我需要用戶在字段中鍵入國家,但國家可以通過多種方式命名(即:「摩爾多瓦」,「摩爾多瓦共和國」,「摩爾多瓦共和國」 ...)。需要選定值的jquery自動填充字段

這可能會導致一片混亂。 因此,我決定將用戶輸入與「正式名稱」數組進行比較,並使用jQuery自動完成來解決該問題。

現在,如果用戶鍵入「摩爾多瓦」,彈出選擇框並讓他選擇正確的語法。

但沒有什麼阻止他單獨與「摩爾多瓦」一起去,因爲自動完成是一個建議,用戶可以通過不點擊它來繞過。

我不希望如此,因爲它最終會導致一個爛攤子一樣好,所以我搜索,在這裏找到了一個解決方案:

jquery autocomplete field that REQUIRES a selected value?

,它看起來像這樣:

$("#country").autocomplete(
{ 
    source: mycountries 
    change: function(event, ui) 
    { 
     if (!ui.item) 
     { 
      $("#country").val(""); 
     } 
    } 
}); 

這很好,因爲如果用戶沒有選擇自動填充建議,它會清除該字段,這樣,用戶無法驗證自己的表單,直到他擁有適合該國家的語法爲止。

但它仍然有一個重大缺陷:

假設用戶鍵入「法國」,這名字的陣列相匹配,但決定由自己來寫這一切,不點擊場上暗示它:

當用戶離開現場時,它將被清除

那麼,如果用戶自己的條目符合建議,我怎麼能通過不清除字段來使這個腳本工作?

回答

1

我(我認爲)發現:

change: function(event, ui) 
{ 
    var myval=$("#country").val(); 
    if($.inArray(myval,mycoutries) == -1) 
    { 
     $("#country").val(""); 
    } 
} 

到目前爲止,一切都很好。

+0

那麼這麼快 我試圖解決它:P w/e +1 – Muath