jquery自动填充/自动填充,无需下拉列表

时间:2012-11-28 12:04:19

标签: javascript jquery autocomplete autofill

我正在尝试对输入元素实现'自动填充'功能。

基本上,它从一个范围(2000 - 20012)接受4位数年份作为输入。我想知道当用户输入年份的第一个数字时,是否可以输入自动填充本身(类似于键入之前键入的内容时Chrome的URL窗格)。

例如,当用户键入“2”时,输入应自动填充,例如2000.然后,用户可以使用“向上”和“向下”箭头循环显示年份。自动填充不应基于先前的搜索,只是以上述方式工作。此外,它不应该有一个下拉列表。

我进行了搜索和搜索,但只发现了带下拉菜单的自动填充功能,但没有自动填充功能。我还尝试了<input type="number" />上下循环部分,但它没有自动填充,它在Firefox中不起作用。

是否有针对此的jQuery解决方案?

稍后编辑:

我找到了dateEntry插件,但我找不到一种方法让它将年份显示为4位数。尝试了各种日期格式,例如'Y''yyyy''/Y',但还没有运气。有谁知道正确的格式?

1 个答案:

答案 0 :(得分:1)

我确定它并不完美。但这可以给你一个开始:

    <div id="wrapper" style="border:1px solid #333;width:200px;max-width:200px;overflow:hidden;display:block;">
        <div contenteditable="true" id="myTxt" onfocus="$(this).attr('style','padding-left:5px;min-width:20px;border:none;width:auto;display:inline;')" onblur="$(this).attr('style','width;auto;display:inline;');" style="padding-left:5px;min-width:20px;border:none;width:auto;display:inline;"></div>
        <input type="text" id="suggestions" placeholder="" onfocus="$(this).prev().focus();updateValue(this);" style="border:none; solid;width:auto;"/>
    </div>

<script type="text/javascript" src="jquery.js" ></script>
<script type="text/javascript">
function updateValue(element){
     var value = $(element).attr('placeholder');
     $('#myTxt').html( $('#myTxt').html() +value);
     $(element).attr('placeholder','');
}
$(document).bind('keyup', function(){
    showSuggesstions($('#myTxt'));
});
function showSuggesstions(element) {
    var list='';        
    var value = $(element).text();
    if(!value)
        return;
    if(value.length==4){
        $('#suggestions').attr('placeholder','');
        return;
    }
    for(var val=2000; val< 3000; val++){
        if( (val+'').indexOf(value) == 0){
            list = (val+'').substring(value.length, val.length);
            break;
        }
    }
    $('#suggestions').attr('placeholder', list);
}
</script>