表单对象的jquery表单字段

时间:2011-06-22 10:54:37

标签: jquery forms field

我有两种不同的形式,两种形式都包含具有相同字段ID的输入字段,如何使用jquery获取关于表单对象的输入字段。

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

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

5 个答案:

答案 0 :(得分: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中选择名称可能非常昂贵,它必须遍历页面上的所有表单并比较名称属性。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

相同的ID?它违反了XHTML标准。你可以不用jquery ..这会更快

document.forms["f1"].name1

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

答案 3 :(得分:0)

您不应在文档中多次使用相同的ID。

无论如何,这个功能可以做到:

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

您可以通过以下两种方式调用该函数:

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

getFieldByForm("formId", "quantity");

对于第二个,您需要表格具有ID。

Here you have a working example.

答案 4 :(得分: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();