автоматический выбор ввода HTML - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть простая форма, и я хочу добавить автоматический выбор для ввода,

вот мое решение.

Форма HTML

 <div class="video large-8 columns large-push-4">
                        <iframe width="100%"  id="videoframe" src="videoframe.html" autoplay>   
                      </iframe>
                </div>

        <div class="form">
                                <span class="form-title">Wypełnij formularz, nasz doradca oddzwoni do Ciebie!</span>
                                <div class="centered">
                                    <input name="client_name" id="client_name" type="text"  placeholder="Imię" class="clientName medium small-12 select_input" />
        </div>
    </div>

Вот videoframe.js.

      $(document).ready(function(){
       document.getElementById('playervideo').addEventListener('timeupdate', function (e) {
        if(stateplayer=="przywitanie" && !$("#playervideo").hasClass("autoselectname") ) {
            if(document.getElementById('playervideo').currentTime >  5) {
                console.log("Zaselektuj pole imie");
                $("#playervideo").addClass("autoselectname");
           //  var inputSelect =document.getElementById('client_name');
                var inputSelect = document.getElementById('client_name');
                inputSelect.focus()
            }
        }
        //console.log("timeupdate: " + document.getElementById('playervideo').currentTime);

    })

   });

Вот видео тег игрока player * video2

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Wideo iframe</title>
    <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
    <link rel="stylesheet" href="css/style.css">

</head>

<body>
    <div id="videowrapper">
        <video  id="playervideo" playsinline controls muted>
        </video>
        <!-- <canvas id="videocanvas" width="1024" height="576"></canvas> -->
        <div class="fader"></div>
        <span id="customPlayer">
                <img src="./img/replay.png">
            </span>
            <span id="customPlayerMute">
                <img src="./img/wyciszony.png">
            </span>
            <span id="customPlayerVoice" class="customPlayerVoice not_clicked"  style="display: none">
                    <img src="./img/glosny.png">
            </span>
    </div>
</body>
<script src="jslibs/howler.min.js"></script>
<script src="https://code.createjs.com/1.0.0/createjs.min.js"></script>
<script src="js/videoframe.js" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mobile-detect/1.4.3/mobile-detect.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/mobile-detect@1.4.3/mobile-detect.min.js"></script>

</html>

Но, к сожалению, я получаю следующую ошибку

jquery-3.3.1.js:3827 Uncaught TypeError: Cannot read property 'select' of null
    at HTMLDocument.<anonymous> (videoframe.js:256)
    at mightThrow (jquery-3.3.1.js:3534)
    at process (jquery-3.3.1.js:3602)

console.log(inputSelect) возвращает это null

Что я делаю не так с моим кодом?

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Если вы видите стек вызовов, который вы вставили, ошибка не относится к элементу inputSelect.У вас есть ошибка здесь: videoframe.js:256.

Я предполагаю, что ваш код не достигает точки, в которой вы пытаетесь получить доступ к элементу inputSelect.Попробуйте установить отладчик и исправить код в строке 256 videoframe.js.

В предоставленном вами фрагменте нет .select, поэтому я думаю, что когда вы пытаетесь выполнить something.select(), эточто-то оказывается null.

0 голосов
/ 05 февраля 2019

У меня недостаточно репутации, чтобы комментировать.Вы можете попробовать добавить тег defer в ваш скрипт.<script src="js/videoframe.js" type="text/javascript" defer></script>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...