如果选项值不匹配,则会清除文本框自动完成功能 [英] Textbox autocomplete clears if not match in option value

查看:81
本文介绍了如果选项值不匹配,则会清除文本框自动完成功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在这里具有自动完成功能.我需要的是,如果在文本框中写入的值在选项值上不匹配,请清除文本框.这就是我现在所得到的 http://jsfiddle.net/qv94t/

I have here an autocomplete function. What I need is if the value that writing in textbox is not match on option value clear the textbox. Here's what I got right now http://jsfiddle.net/qv94t/

选项中甚至不允许该值的文本框.

The textbox not allowing even the value is in the options.

这是我的代码

<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>

感谢进阶!

推荐答案

我认为这是您要寻找的:

I think this is what you are looking for:

http://jsfiddle.net/juvian/qv94t/3/

您的有效选项未定义,因此无法正常工作.

Your validOptions was undefined, so was not working properly.

var validOptions =[];
$("#language option").each(function(){
    validOptions.push($(this).val())      
});

希望有帮助!

这篇关于如果选项值不匹配,则会清除文本框自动完成功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆