Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Обработчик и получение значения из внешнего js скрипта ? (https://javascript.ru/forum/misc/71072-obrabotchik-i-poluchenie-znacheniya-iz-vneshnego-js-skripta.html)

anstrem 24.10.2017 12:27

Обработчик и получение значения из внешнего js скрипта ?
 
Подскажите новичку.
На сайте подключен и вызывается некий внешний JS
Одно из его возможных действий этот pop-up окошки с формами с опросом пользователя.
Можно как забрать себе копию данных вводимых пользователями в этих формах ?

В частности в примере вижу в инспекторе следующий код формы запроса e-mail:

<form action="lh-banner" method="" class="widget--form">
                <p class="widget--error_text">Введите корректный e-mail</p>


                <input name="email" class="widget--input" placeholder="e-mail" type="text">

                <div class="agreement">
                    <input id="agreement-val" name="agreement" checked="" type="checkbox">
                    <label for="agreement-val" id="agreement_text"> Я даю своё согласие на обработку персональных данных и принимаю условия </label>
                    <a target="_blank" href="https://site.ru/publichnaya-oferta">Пользовательского соглашения.</a>
                </div>

                <input class="widget--submit" value="Получить бонус" type="submit">
</form>


Могу я в своем html/php/js как то повесить обработчик события на эту форму создаваемую внешним скриптом, чтобы по нажатию в ней submit, получать себе значение из поля формы "email" ?

Dilettante_Pro 24.10.2017 12:41

anstrem,
Сработает более поздний обработчик
<form action="lh-banner" method="" class="widget--form">
                <p class="widget--error_text">Введите корректный e-mail</p>


                <input name="email" class="widget--input" placeholder="e-mail" type="text">

                <div class="agreement">
                    <input id="agreement-val" name="agreement" checked="" type="checkbox">
                    <label for="agreement-val" id="agreement_text"> Я даю своё согласие на обработку персональных данных и принимаю условия </label>
                    <a target="_blank" href="https://site.ru/publichnaya-oferta">Пользовательского соглашения.</a>
                </div>

                <input class="widget--submit" value="Получить бонус" type="submit">
</form>
<script>
// внешний скрипт
    document.querySelector('.widget--form').onsubmit = function(e) {
             e.preventDefault();
             alert('внешний скрипт');
    }
</script>
<script>
// ваш скрипт
    document.querySelector('.widget--form').onsubmit = function(e) {
             e.preventDefault();
             alert(document.querySelector('.widget--input').value);
    }
</script>

anstrem 24.10.2017 14:14

Т.е. если где то во внешнем скрипте есть обработка onclick и я ниже на тот же onclick повешу свой обработчик, то сработает только мой, а функционал внешнего скрипта будет нарушен ?

А нельзя как то чтобы они вместе сработали и мой и их ?

Или просто выяснить какое из событий они используют (если используют вообще) submit или onclick и повеситься на свободное ?

Dilettante_Pro 24.10.2017 14:28

И внешний, и ваш.
<form action="lh-banner" method="" class="widget--form">
                <p class="widget--error_text">Введите корректный e-mail</p>


                <input name="email" class="widget--input" placeholder="e-mail" type="text">

                <div class="agreement">
                    <input id="agreement-val" name="agreement" checked="" type="checkbox">
                    <label for="agreement-val" id="agreement_text"> Я даю своё согласие на обработку персональных данных и принимаю условия </label>
                    <a target="_blank" href="https://site.ru/publichnaya-oferta">Пользовательского соглашения.</a>
                </div>

                <input class="widget--submit" value="Получить бонус" type="submit">
</form>
<script>
// внешний скрипт
    document.querySelector('.widget--form').onsubmit = function(e) {
             e.preventDefault();
             alert('внешний скрипт');
    }
</script>
<script>
// ваш скрипт
    document.querySelector('.widget--form').addEventListener('submit', function(e) {
             e.preventDefault();
             alert(document.querySelector('.widget--input').value);
    });
</script>


Часовой пояс GMT +3, время: 16:59.