Как я могу предварительно заполнить поля ввода формы HTML из параметров URL? - PullRequest
21 голосов
/ 24 марта 2011

У меня есть ванильная HTML-страница, в которой есть форма. Введено требование, чтобы можно было предварительно заполнить форму через URL. Что-то вроде:

http://some.site.com/somePage.html?forename=Bob&surname=Jones

Кажется, я не могу найти никакого простого решения для этого. Может ли кто-нибудь указать мне правильное направление с помощью некоторого JavaScript для достижения этой цели? Рад использовать решение javascript, но я бы предпочел не использовать целую библиотеку только для этого единственного использования (в настоящее время не используется ни одна) Спасибо.

Ответы [ 3 ]

23 голосов
/ 24 марта 2011

Использовать пользовательскую строку запроса функции 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;
12 голосов
/ 24 марта 2011

Вы используете 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; ?>' >

Это должно быть предварительно заполнено для вас.

10 голосов
/ 24 марта 2011
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...