我有2種不同的形式,這兩種形式都包含具有相同的字段id的輸入字段如何可以獲取有關使用jQuery的表單對象的輸入字段。由表單對象jQuery的表單字段
<form name"f1">
<input type="text" id="quantity" />
</form>
<form name"f2">
<input type="text" id="quantity" />
</form>
我有2種不同的形式,這兩種形式都包含具有相同的字段id的輸入字段如何可以獲取有關使用jQuery的表單對象的輸入字段。由表單對象jQuery的表單字段
<form name"f1">
<input type="text" id="quantity" />
</form>
<form name"f2">
<input type="text" id="quantity" />
</form>
form1_quantity = $('form[name="fl"] #quantity');
form2_quantity = $('form[name="f2"] #quantity');
你不能根據(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中必須瀏覽頁面上的所有表單並比較名稱屬性。
相同的ID?它違反了XHTML標準。你可以不這樣做的jQuery ..這將更快
document.forms["f1"].name1
與
<form name="f1"><input name="name1" /></form>
你不應該使用相同的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。
首先,你需要讓你的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();