Скопируйте значение одной формы в скрытое поле второй формы - PullRequest
0 голосов
/ 09 октября 2011

У меня есть страница с несколькими формами, однако все формы должны принимать значение переключателя в форме продуктов. Ниже приведена упрощенная версия моих форм, которые находятся на одной странице.

<form name="products" method="post" action="" />
<input id="prod_name" name="prod_name" type="radio" value="Product 1" checked />
<input id="prod_name" name="prod_name" type="radio" value="Product 2" />
</form>

<form name="delivery_method1" method="post" action="" />
<input type="hidden" id="item_name" name="item_name" value=""/>
<input type="image" name="submit" value="submit">
</form>

<form name="delivery_method2" method="post" action="" />
<input type="hidden" id="item_name" name="item_name" value=""/>
<input type="image" name="submit" value="submit">
</form>

Я понимаю, что должен иметь возможность скопировать значение "prod_name" в скрытое поле "item_name" с помощью JavaScript, однако я пробовал несколько решений, но они не сработали.

У меня очень мало знаний по JavaScript, поэтому я был бы признателен, если бы кто-нибудь мог предоставить мне полную функцию и детали того, как эта функция действует из формы.

1 Ответ

2 голосов
/ 09 октября 2011

ID атрибутов должен быть уникальным .Если они вам не нужны, удалите их.Если вы используете id=... для стилизации, замените все вхождения id= на class= и замените острый (#) в CSS точкой.

Когда формаотправлено, отправляются только элементы с атрибутом name.Это должно работать:

....
<script>
function fill(value) {
    var forms = document.forms;
    for (var i = 0; i < forms.length; i++) {
        if (forms[i].item_name) forms[i].item_name.value = value;
    }
}
</script>
</head>
<body>
...
<form name="products" method="post" action="">
<input onchange="fill(this.value)" name="prod_name" type="radio" value="Product 1" checked />
<input onchange="fill(this.value)" name="prod_name" type="radio" value="Product 2" />
</form>
...

Все элементы формы доступны через их имя в элементе form.Все формы доступны (по имени или по индексу в документе) через объект document.forms.

При изменении выбора радиосвязи вызывается функция fill(), передавая this.value в качестве аргумента.Из контекста элементов радиовхода this.value указывает на значение элемента радио.

Затем мы перебираем все формы в документе.Если item_name является элементом формы, значение обновляется.

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