2010-11-02 4 views
0

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

<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.

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

Спасибо.

ответ

3

Использование JQuery и попробовать что-то вроде этого

http://jsfiddle.net/nA37d/

+0

Wow! Это действительно здорово. Есть ли способ отключить поля во второй группе, когда флажок включен, в то время как все еще отображаются скопированные значения? – santa

+0

Слишком быстро. Смотрите этот обновленный скрипт. http://jsfiddle.net/nA37d/3/ –

+0

Спасибо! Отлично! Я сделал одно изменение. Вместо .attr («readonly», true) я положил .attr («отключено», «отключено»); Работает как шарм. – santa

0

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

0

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

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

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

1

Надеется, что это поможет:

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

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

Смежные вопросы