Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery表单字段(按表单对象)_Jquery_Forms_Field - Fatal编程技术网

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 现在,所有浏览器都

我有两个不同的表单,两个表单都包含具有相同字段id的输入字段。如何使用jquery获取表单对象的输入字段

<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();