2010-11-02 63 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

哇!這真的很酷。是否有辦法禁用第二組中的字段,當複選框處於啓用狀態時,仍然顯示正在複製的值? – santa 2010-11-02 17:42:18

+0

有點太快了。看到這個更新的小提琴insted。 http://jsfiddle.net/nA37d/3/ – 2010-11-02 18:09:38

+0

謝謝!這很棒!不過,我做了一個改變。而不是.attr(「只讀」,真)我把.attr(「禁用」,「禁用」);奇蹟般有效。 – santa 2010-11-02 18:23:24

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

或者,你可以隨時使用所見即所得的形式製造商之一。如果你正在尋找令人討厭的東西,試試ActiveForms - 這是相當昂貴的,但效果很好。