![](/img/trans.png)
[英]Setting 'option' on jqueryui DatePicker clears the textbox's value?
[英]Textbox autocomplete clears if not match in option value
我這里有一個自動完成功能。 我需要的是,如果在文本框中寫入的值在選項值上不匹配,請清除文本框。 這就是我現在得到的http://jsfiddle.net/qv94t/
選項中甚至不允許該值的文本框。
這是我的代碼
<form id="register_form" name="register_form">
<input list="language" id="none">
<datalist id="language" name="options">
<option value="Alabama">Alabama</option>
<option value="Alaska">Alaska</option>
<option value="Arizona">Arizona</option>
<option value="kansas">kansas</option
<option value="California">California</option>
</datalist>
</form>
<script>
var validOptions = $("form#register_form input[name='options']").val();
previousValue = "";
$('#none').autocomplete({
autoFocus: true,
source: validOptions
}).keyup(function() {
var isValid = false;
for (i in validOptions) {
if (validOptions[i].toLowerCase().match(this.value.toLowerCase())) {
isValid = true;
}
}
if (!isValid) {
this.value = previousValue
} else {
previousValue = this.value;
}
});
</script>
提前致謝!
我認為這是您要尋找的:
http://jsfiddle.net/juvian/qv94t/3/
您的validOptions未定義,因此無法正常工作。
var validOptions =[];
$("#language option").each(function(){
validOptions.push($(this).val())
});
希望能幫助到你!
擺脫這段代碼
if (!isValid) {
this.value = previousValue
} else {
previousValue = this.value;
}
這是引起麻煩的人
只需刪除this.value = previousValue
這是更新的提琴, http://jsfiddle.net/qv94t/2/
var validOptions = $("form#register_form input[name='options']").val();
previousValue = "";
$('#none').autocomplete({
autoFocus: true,
source: validOptions
}).keyup(function() {
var isValid = false;
for (i in validOptions) {
if (validOptions[i].toLowerCase().match(this.value.toLowerCase())) {
isValid = true;
}
}
if (!isValid) {
//this.value = previousValue
} else {
previousValue = this.value;
}
});
希望這可以幫助..! :D
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.