Передать переменную из URL в val()

128
23 января 2020, 12:20

Нужно чтобы при вызове site.com/?Email=ivan.naumov@gmail.com передавался параметр в $("#id-1").val.

setInterval(function(){ins();}, 7000);
$("#id-1").attr("name", "Email");
$("#id-2").attr("name", "Message");
$("#id-1").val("ivan.naumov@gmail.com"); $("#id-2").focus();});
Answer 1
function getQueryVariable(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split('&');
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split('=');
        if (decodeURIComponent(pair[0]) == variable) {
            return decodeURIComponent(pair[1]);
        }
    }
    console.log('Query variable %s not found', variable);
}
getQueryVariable('Email')
Answer 2

Если Email=ivan.naumov@gmail.com - это последний или единственный параметр в get-запросе, то получить "мыло" можно вот такой конструкцией:

let mail = window.location.href.split('=').pop();

Ну и передать потом переменную в $("#id-1").val():

$("#id-1").val(mail);

Если же параметр не один или находится где-то в середине get-запроса, то можно сделать так:

let mail = '';
let url = window.location.href.split(/\?|&|\=/); //получаем массив из всех элементов адреса
for(let i = 0; i < url.length; i++) { //в цикле проверяем
  if(url[i].indexOf('@') != -1) { //есть ли элемент, содержащий "собаку"
    mail = url[i];
  }
}
$("#id-1").val(mail);
Answer 3

Атрибут id в принципе не нужен, когда есть name:

// const params = (new URL(window.location)).searchParams;  
const params = (new URL('https://site.com/?Email=ivan.naumov@gmail.com&Message=Hello')).searchParams;  
for (let [key, value] of params.entries()) 
  $(`input[name="${key}"]`).val(value);   // document.querySelector(`input[name="${key}"]`).value = value; 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
 
<input name="Email"> 
<input name="Message">

p.s.: Метод URLSearchParams.entries() уже поддерживается всеми популярными браузерами (как и деструктурирование, и шаблонные строки), хотя он еще не включен в стандарт.

READ ALSO
Не корректно работает нажатие на кнопку в javascript

Не корректно работает нажатие на кнопку в javascript

Пытаюсь немного упростить себе жизнь и решил написать javascript-код, который при загрузке страницы автоматически заполняет необходимы поля...

104
Как сделать динамический навбар?

Как сделать динамический навбар?

Задача такая - сделать динамически изменяющий цвет навбар, взависимости от высоты он должен плавно менять цвет

135
Расчет расстояния и цен Яндекс карт

Расчет расстояния и цен Яндекс карт

Имеется скрипт, который рассчитывает стоимость доставки в зависимости от расстоянияТакже, он вычисляет в пределах МКАД доставка или нет

126
Можно ли запустить js скрипт через запрос?

Можно ли запустить js скрипт через запрос?

Пишу функцию для перезагрузки usb модема через вебмордуСейчас это делаю с помощью selenium

157