скопировать значения полей формы - PullRequest
0 голосов
/ 02 ноября 2010

Мне нужно написать код, который будет копировать один набор значений формы в другой.И обычно это делается примерно так:

<script type="text/javascript">
function copyGroup() {
    if(document.formName.copy[0].checked){
        document.formName.a1.value = document.formName.b1.value;
        document.formName.a2.value = document.formName.b2.value;
        document.formName.a3.value = document.formName.b3.value;
    }
}
</script>

<form name="formName">
    <input type="text" name="a1">
    <br>
    <input type="text" name="a2">
    <br>
    <input type="text" name="a3">
    <br>
    <input type="checkbox" name="copy" onSelect="copyGroup()"> Copy Group 1
    <br>
    <input type="text" name="b1">
    <br>
    <input type="text" name="b2">
    <br>
    <input type="text" name="b3">
    <br>
    <input type="submit">
</form>

Однако я бы хотел изменить его так, чтобы, если флажок установлен, а пользователь вернулся и изменил все значения в группе1 - соответствующие поля в группе 2 также обновляются.

Я думаю, что это можно сделать, но не знаю, как.

Спасибо.

Ответы [ 5 ]

3 голосов
/ 02 ноября 2010

Используйте jQuery и попробуйте что-то вроде этого

http://jsfiddle.net/nA37d/

1 голос
/ 02 ноября 2010

Надеюсь, эта помощь:

function copyElement(copyFrom, whereToCopy) {
    if(document.formName.copy.checked){
        document.formName.elements[whereToCopy].value = copyFrom.value;
    }
}
</script>

<form name="formName">
    <input type="text" name="a1" onkeypress="copyElement(this, 'b1')">
    <br>
    <input type="text" name="a2" onkeypress="copyElement(this, 'b2')">
    <br>
    <input type="text" name="a3" onkeypress="copyElement(this, 'b3')">
    <br>
    <input type="checkbox" name="copy"> Copy Group 1
    <br>
    <input type="text" name="b1">
    <br>
    <input type="text" name="b2">
    <br>
    <input type="text" name="b3">
    <br>
    <input type="submit">
</form>
0 голосов
/ 05 декабря 2013

Или вы всегда можете использовать один из конструкторов форм WYSIWYG.Если вы ищете что-то вызывающее, попробуйте ActiveForms - это довольно дорого, но хорошо работает.

0 голосов
/ 02 ноября 2010

Один из способов - проверить события onchange каждого поля ввода и, если флажок установлен, скопировать значения, но это будет постоянно копировать большое количество данных, и, как таковое, не очень эффективно.

Другим способом является использование кнопки вместо флажка (кнопка со значением «Копировать в другую форму» вряд ли может быть неверно истолкована, тогда как флажок является неоднозначным), а при событии onclick кнопки запускается копия -код.

Просто примечание: я бы выбрал для этого jQuery и просто набрал $ ("# formName input"). Change (function (stuff)); или что-то в этом роде.

0 голосов
/ 02 ноября 2010

Добавьте событие onchange к элементам и вызовите вашу функцию.

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