Как я могу предварительно заполнить поля ввода формы html из параметров url?
У меня есть страница html vanilla, в которой есть форма. Требовалось, чтобы иметь возможность предварительно заполнить форму через URL-адрес. Что-то вроде:
http://some.site.com/somePage.html?forename=Bob&surname=Jones
Я не могу найти простого решения. Может ли кто-нибудь указать мне в правильном направлении с помощью некоторого javascript для этого? С удовольствием использую javascript-решение, но я бы предпочел не брать всю библиотеку только для этого единственного использования (в настоящее время ни один из них не используется). Спасибо.
Ответы
Ответ 1
Использовать пользовательскую строку запроса Javascript.
function querySt(ji) {
hu = window.location.search.substring(1);
gy = hu.split("&");
for (i=0;i<gy.length;i++) {
ft = gy[i].split("=");
if (ft[0] == ji) {
return ft[1];
}
}
}
var koko = querySt("koko");
Затем присвойте полученное значение элементу управления ввода; что-то вроде:
document.getElementById('mytxt').value = koko;
Ответ 2
Вы используете PHP? Если это так, это упрощает работу. Предполагая, что ваша ссылка, как указано выше, вы можете использовать:
<?php
$forename = $_GET['forename'];
$surname = $_GET['surname'];
?>
----------
<input id='forename' type='text' value='<?php echo $forename; ?>' >
<input id='surname' type='text' value='<?php echo $surname; ?>' >
Это должно быть предварительно заполнено для вас.
Ответ 3
function getUrlVars()
{
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
var get = getUrlVars();
//returns get['forename'] == bob; surname == jones