2013-06-19 39 views
1

我正在使用datalist爲我的自動完成字段。它的工作正常。如果我在我的自動完成框中輸入「r」,它會返回值reeta和mary,因爲mary還包含字母「r」。但我不希望我的汽車完成像這樣工作。我只想要reeta不是瑪麗它意味着輸入的字母作爲開始字母的值。只有字母選擇值是自動完成數據列表中的起始字母

+0

我找到了 奇怪的是,自動完成的datalist按照你的要求工作即進入'r'它只顯示reeta而不是在Chrome和IE-10(IE的低版本不支持datalist)中結婚,而只有Mozilla Firefox顯示reeta和mary打' R」。請分享,如果你知道這是什麼原因背後這 –

回答

1

使用source選項來實現自己的搜索:

var dataSource = ['mary', 'reeta', 'james']; 

$("input").autocomplete({ 
    minLength: 1, 
    source: function(request, response) { 

     var matcher = new RegExp('^' + $.ui.autocomplete.escapeRegex(request.term), "i"); 
     var filteredData = $.grep(dataSource, function(value) { 
      return matcher.test(value.label || value.value || value); 
     }); 
     response(filteredData); 
    } 
}); 

例如http://jsfiddle.net/AU92X/8/

,你甚至可以把它的全球只是通過重寫$.ui.autocomplete.escapeRegex

var dataSource = ['mary', 'reeta', 'james']; 

$("input").autocomplete({ 
    minLength: 1, 
    source: dataSource 
}); 

var escapeRegexp = $.ui.autocomplete.escapeRegex; 
$.extend($.ui.autocomplete, { 
    escapeRegex: function(value) { 
     return '^' + escapeRegexp(value); 
    } 
}); 

例如http://jsfiddle.net/AU92X/10/

+0

嗨claustrofob,它對我工作很好...非常感謝你...我用$ .ui.autocomplete.escapeRegex函數...非常感謝.. –

+0

@SangeethaKrishnan剛剛注意到這個問題是關於html5 datalist =)很高興我的答案幫助。 – claustrofob

+0

亞,但我放棄了數據列表的想法..我只是使用自動完成,沒有datalist,因爲你說... –