JSFiddle - React, Tailwind, and code Playground

by imsky

HTML

<input type="text">

JavaScript

$(function(){
    $("input").bind("keydown", function(e){
        if(!$(this).data("history")){
            $(this).data("history", []);
        }
        if(!$(this).data("index")){
            $(this).data("index",0);
        }
        var history =  $(this).data("history");
        var index = $(this).data("index");
        switch(e.which){
            case 13:
                history.push($(this).val());
                $(this).data("index", history.length-1)
                $(this).val("");
            break;
            case 40:
                $(this).data("index", Math.min(history.length-1, ++index));
                $(this).val(history[$(this).data("index")]);
            break;    
            case 38:
                $(this).val(history[$(this).data("index")]);
                $(this).data("index", Math.max(0, --index));
            break;
        }
    });        
});