1. 程式人生 > >類似智慧購票的demo--進入頁面後預設焦點在第一個輸入框,輸入內容、回車、right時焦點自動跳到下一個,當跳到select時,下拉選項自動彈出,並且可以按上下鍵選擇,選擇完成後再跳到下一個。

類似智慧購票的demo--進入頁面後預設焦點在第一個輸入框,輸入內容、回車、right時焦點自動跳到下一個,當跳到select時,下拉選項自動彈出,並且可以按上下鍵選擇,選擇完成後再跳到下一個。

要實現的效果:進入頁面後預設焦點在第一個輸入框,輸入內容、回車、right時焦點自動跳到下一個,當跳到select時,下拉選項自動彈出,並且可以按上下鍵選擇,選擇完成後再跳到下一個。

PS:自己模擬的一個簡單效果,但仍然存在問題:網上搜了許多,關於select自動彈出的問題,仍然沒有解決,現在其實覺得select那裡實現的只是一個假象。當跳到第一個select時,option彈出,選擇後跳到第二個,但是再返回第一個後,第一個select的option就彈不出來了。。這裡該怎麼實現呢???

希望同學們看到後有什麼方法可以留言,可以完成一個完整的,謝謝。

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <link rel="stylesheet" href="css/demo.css"/>
    <script src="js/jquery-3.1.1.min.js"></script>
    <script src="js/demo.js"></script>
    <title>demo</title>
</head>
<body>
<div class="wrapper">
    <div class="container">
        <form action="#" id="form" class="form">
            <div class="form_inner">
                <!--<label for="demo_1">使用者名稱:</label>-->
                <input type="text"  class="demo_input" id="demo_1" name="demo_1" placeholder="請輸入..."/>
                <!--<label for="demo_2">1111:</label>-->
                <input type="text"  class="demo_input" id="demo_2" name="demo_2" placeholder="請輸入..."/>
                <input type="text"  class="demo_input" name="demo_3" placeholder="請輸入..."/>
                <textarea class="demo_textarea" name="demo_6" placeholder="請輸入..."></textarea>
                <textarea class="demo_textarea" id="demo_7" name="demo_7" placeholder="請輸入..."></textarea>
                <select class="demo_select" id="demo_4" name="demo_4">
                <!--<select class="demo_select" id="demo_4" name="demo_4" onkeypress="return false;">-->
                    <option>選項一</option>
                    <option>選項二</option>
                    <option>選項三</option>
                </select>
                <select class="demo_select" id="demo_5" name="demo_5">
                    <option>選項一</option>
                    <option>選項二</option>
                    <option>選項三</option>
                </select>
            </div>
        </form>
        <br/><br/><br/>
        <p>預設焦點在第一個;當input輸入內容大於10、right、回車,焦點跳到下一個;按left返回上一個;</p>
    </div>
</div>


</body>
</html>

$(document).ready(function () {
    //keycode 37 = Left, keycode 38 = Up, keycode 39 = Right, keycode 40 = Down
    //預設焦點在第一個;當input輸入內容大於10、right、回車,焦點跳到下一個;按左鍵返回上一個;
    $('input').eq(0).focus();
    $("[name^='demo_']").keydown(function (e){
        var k = e.keyCode;
        if (k == 13 || k == 39 || $(this).val().length >= 10) { //回車 or right or >10
            if($('#demo_4') || $('#demo_5')){
                $(this).next().focus();
            }else{
                $(this).next().focus();
                return false;
            }
        } else if (k == 37) { //left
                $(this).prev().focus();
                $(this).prev().focus(function (){
                    var obj = e.srcElement ? e.srcElement : e.target;
                });
        }
    })
});