2012-01-08 60 views
0

我有一個包含2個輸入字段的表單,其中一個是隱藏的,另一個是按鈕。當我點擊按鈕時,我需要獲取並將同一表單中的隱藏表單字段的值分配給另一個div。以相同的形式獲取其他表單輸入的值

如何遍歷dom以獲取特定表單域的值?我知道表單輸入字段名稱。 [編輯] - 我應該補充說,我有相同的元素,在同一頁上的多個窗體,所以我不能使用$(「input [name ='FORMELEMENT']」);因爲我有各種相同的表單名稱。我需要以與按鈕所在位置相同的形式查找表單元素的值。

+0

如果您使用的是jQuery,則不需要「遍歷DOM」這是jQuery中選擇器的要點。您可以選擇具體哪些元素(或元素,取決於)你正在尋找和處理它/他們。另一方面,純DOM方法通常歸結爲按類型獲取所有元素,然後查找更具體的匹配。在DOMland中,顯而易見的替代方法是將'id'用於'document.getElementById()'。 – 2012-01-08 14:53:47

+0

查看我的更新後,您的編輯。 – 2012-01-08 15:01:13

+0

請注意,我編輯了我的答案以修復'console.log'。 – 2012-01-08 15:18:32

回答

2

請注意,inputtype="text",以便更容易看到更改。這並不影響它在現場示例中爲type="hidden",因爲它們的功能基本相同,除非一個不可見。

編輯 - 請注意,在實現console.log() s未按預期工作後進行了更改。

<form> 
    <input type="text" name="myhidden" value="[placeholder]"/> 
    <input type="button" name="mybutton" value="Click me!" rel="the value to copy 1"/> 
</form> 
<form> 
    <input type="text" name="myhidden" value="[placeholder]"/> 
    <input type="button" name="mybutton" value="Click me!" rel="the value to copy 2"/> 
</form> 
<form> 
    <input type="text" name="myhidden" value="[placeholder]"/> 
    <input type="button" name="mybutton" value="Click me!" rel="the value to copy 3"/> 
</form> 

$(document).ready(function(){ 
    $('input[name="mybutton"]').click(function(){ 
     var $hidden = $(this).parent('form').find('input[name="myhidden"]'); 
     console.log($hidden.val()); 
     $hidden.val($(this).attr('rel')); 
     console.log($hidden.val()); 
    }); 
}); 

http://jsfiddle.net/WYJRm/4

1
$("#the-formid input[name=the-name-you-know]").val() 
0

除非你真的想通過DOM遍歷,你最好只給表單元素的ID,這使得代碼更簡單,更可靠。

,然後將此功能添加到您的JavaScript文件

function copyFormValue(visibleID, hiddenID){ 
    visibleElement = document.getElementById(visibleID); 
    hiddenElement = document.getElementById(hiddenID); 
    hiddenElement.value = visibleElement.value; 
} 

並調用該函數被點擊您的按鈕時。

onclick="copyFormValue('userName', 'userNameHidden');"