jquery表单字段(按表单对象)
我有两个不同的表单,两个表单都包含具有相同字段id的输入字段。如何使用jquery获取表单对象的输入字段jquery表单字段(按表单对象),jquery,forms,field,Jquery,Forms,Field,我有两个不同的表单,两个表单都包含具有相同字段id的输入字段。如何使用jquery获取表单对象的输入字段 <form name"f1"> <input type="text" id="quantity" /> </form> <form name"f2"> <input type="text" id="quantity" /> </form> 根据(X)HTML规范,您不得在同一文档上多次使用同一ID 现在,所有浏览器都
<form name"f1">
<input type="text" id="quantity" />
</form>
<form name"f2">
<input type="text" id="quantity" />
</form>
根据(X)HTML规范,您不得在同一文档上多次使用同一ID 现在,所有浏览器都允许您这样做,但是无法通过ID选择器将第二个表单选择为document。getElementById()将只返回第一个表单 我会修正标记,使ID是不同的。如果不可能,请通过以下表单选择输入:
$('form[name=f2]>input[type=text]:eq(0)')
或
此外,我还建议提供表单(不同的)ID,因为在IE中,按名称选择可能非常昂贵,IE必须遍历页面上的所有表单并比较名称属性。相同ID??它违反了XHTML标准。您可以不使用jquery。。这会更快
document.forms["f1"].name1
与
一个文档中不能多次使用同一ID 无论如何,此函数可以做到:
function getFieldByForm(anyForm, fieldId) {
if(typeof(anyForm) == "string")
anyForm = $("#" + anyForm);
return anyForm.find("#" + fieldId);
}
您可以通过以下两种方式之一调用函数:
getFieldByForm($("form[name='f1']"), "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();
form1Qty=$('form[name=“fl”].quantity').val();
form2Qty=$('form[name=“f2”].quantity').val();
//或
form1Qty=$('fl.quantity').val();
form2Qty=$('#f2.quantity').val();
function getFieldByForm(anyForm, fieldId) {
if(typeof(anyForm) == "string")
anyForm = $("#" + anyForm);
return anyForm.find("#" + fieldId);
}
getFieldByForm($("form[name='f1']"), "quantity");
getFieldByForm("formId", "quantity");
<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();