2011-03-08 70 views
2

我有一個循環,產生這些一堆:有一個循環多個相同的ID和使用jQuery與他們

<textarea id="uar"></textarea>

同一迴路產生相鄰的textarea的一個提交鏈接。

該鏈接將在此形式:

<form action="php/unApprovePost.php" method="POST" id="unApprovePost"> 
    <input type="hidden" id="uaid" name="uaid"/> 
    <input type="hidden" id="uadc" name="uadc"/> 
</form> 

我填充#uaid成功,但是當我嘗試填充#uadc,只在循環的第一次迭代中具有的功能。我的意思是 - 只有第一個textarea纔會正確發佈我想要的東西。如果我嘗試使用除第一個以外的其他textareas,他們不會提交任何內容。我認爲這與HTML中ID的唯一性有關。我嘗試使用類.uar但這並不真的工作 - 相同的行爲。任何幫助?

這裏是我的jQuery代碼:

$('#unApprovePost').submit(function() { 
     $('#uadc').val($('#uar').val()); 
    }); 

編輯: 有循環迭代的動態量,所以我真的不能有一些像類=「uar1」。我試圖使它.uar類的文字區域,並使用此jQuery代碼:

$('#unApprovePost').submit(function() { 
    $('#uadc').val($('.uar').val()); 
}); 

但問題仍然存在。

+0

爲什麼不完全避免隱藏的元素,只給文本區域元素分配給隱藏的輸入的id? – 2011-03-08 09:23:35

+0

表單離textarea或提交鏈接很遠。我必須使用jQuery進行提交。 – AKor 2011-03-08 09:24:15

回答

0

$('#uadc')返回ID爲uadc的元素。如果您有多個具有該ID的元素,則不起作用。

<input name="uadc"/>將使用密鑰uadc將其值提交給服務器。如果在同一表單中有多個具有相同名稱的輸入,它將不起作用。

2

不能有多個HTML元素使用相同的id。這顯然是錯誤的,它可能會導致頁面中出現一些奇怪的行爲。只有第一個textarea工作是完全正常的,因爲jQuery將查找給定的id,找到第一個,併發送表單。

這是同樣的問題,當你總是使用相同的類,jQuery找到第一個併發送表單。

我建議你使用的每個文本區域,而不是一個不同class(即uar1,uar2,uar3等)

1

的ID應該是在頁面上獨一無二的。 jQuery/JavaScript只需要一個元素在由ID引用時就存在。

使用classname來循環元素,無論哪個符合您的需要。

0

如果您包裝每個ID並以自己的形式提交它應該工作。這將允許每個提交基於所選提交發送正確的文本區域。

<form action="php/unApprovePost.php" method="POST" id="unApprovePost"> 
    <input type="hidden" id="uaid" name="uaid"/> 
    <input type="hidden" id="uadc" name="uadc"/> 
    <input type="submit" id="submit" name="submit"/> 
</form> 

否則你可以手動建立一個所有id的列表,如果你真的想要併發送一個列表。這可能看起來像這樣:

var values = [] 
$.each($('#uaid'), function(i, item){ 
    values.append($(item).val()); 
} 

結果將是一個值數組,然後您可以手動發佈到頁面。

相關問題