2011-06-22 19 views
0

我有2種不同的形式,這兩種形式都包含具有相同的字段id的輸入字段如何可以獲取有關使用jQuery的表單對象的輸入字段。由表單對象jQuery的表單字段

<form name"f1"> 
<input type="text" id="quantity" /> 
</form> 

<form name"f2"> 
<input type="text" id="quantity" /> 
</form> 

回答

0
form1_quantity = $('form[name="fl"] #quantity'); 
form2_quantity = $('form[name="f2"] #quantity'); 
2

你不能根據(X)HTML規範對同一文檔使用相同的ID多次。

現在,所有的瀏覽器都可以讓您避免這種情況,但是無法通過ID選擇器選擇第二個表單,因爲document.getElementById()將僅返回第一個表單。

我會修正標記,使ID不同。如果這是不可能的,通過通過形式去選擇輸入:

$('form[name=f2]>input[type=text]:eq(0)') 

$('form[name=f2]>#quantity'); // but please fix the IDs 

而且,我會推薦給形式(不同)的ID也由名稱選擇是非常昂貴的在IE中必須瀏覽頁面上的所有表單並比較名稱屬性。

0

相同的ID?它違反了XHTML標準。你可以不這樣做的jQuery ..這將更快

document.forms["f1"].name1 

<form name="f1"><input name="name1" /></form> 
0

你不應該使用相同的ID超過一​​次文件內。

反正這個功能可以做到這一點:

function getFieldByForm(anyForm, fieldId) { 
    if(typeof(anyForm) == "string") 
     anyForm = $("#" + anyForm); 
    return anyForm.find("#" + fieldId); 
} 

您可以撥打funcion上任何這兩種方式:

getFieldByForm($("form[name='f1']"), "quantity"); 

getFieldByForm("formId", "quantity"); 

對於第二個你需要表格有ID。

Here you have a working example.

0

首先,你需要讓你的ID的獨特,也許類可以更好地爲您:

<form id="f1" name"f1"> 
    <input type="text" id="quantity" class="quantity" /> 
</form> 

<form id="f2" name"f2"> 
    <input type="text" id="quantity2" class="quantity" /> 
</form> 

form1Qty = $('form[name="fl"] .quantity').val(); 
form2Qty = $('form[name="f2"] .quantity').val(); 

//OR 

form1Qty = $('#fl .quantity').val(); 
form2Qty = $('#f2 .quantity').val();