私は2つの異なるフォームを持っています、両方のフォームは、同じフィールドIDを持つ入力フィールドをどのようにjqueryを使用してフォームオブジェクトに関して入力フィールドを得ることができます。jqueryフォームフィールドオブジェクトby
<form name"f1">
<input type="text" id="quantity" />
</form>
<form name"f2">
<input type="text" id="quantity" />
</form>
私は2つの異なるフォームを持っています、両方のフォームは、同じフィールドIDを持つ入力フィールドをどのようにjqueryを使用してフォームオブジェクトに関して入力フィールドを得ることができます。jqueryフォームフィールドオブジェクトby
<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セレクタで2番目のフォームを選択する方法はありません。document.getElementById()は最初のフォームのみを返します。
IDが異なるようにマークアップを修正します。それができない場合は、フォームを経由して入力を選択します。
$('form[name=f2]>input[type=text]:eq(0)')
または
$('form[name=f2]>#quantity'); // but please fix the IDs
また、私は名前で選択するよう、あまりにも形式に(明確な)のIDを与えることが非常に高価になる可能性が推薦しますIEでは、ページ上のすべてのフォームを調べ、名前属性を比較する必要があります。
同じID ??それはXHTML標準に違反します。あなたは...これが速く
document.forms["f1"].name1
<form name="f1"><input name="name1" /></form>
とあなたは文書内で複数回、同じIDを使用することになっていないだろうjqueryのなしで行うことができます。
とにかくこの関数はそれを行うことができます:
function getFieldByForm(anyForm, fieldId) {
if(typeof(anyForm) == "string")
anyForm = $("#" + anyForm);
return anyForm.find("#" + fieldId);
}
あなたは、この2つの方法のいずれかでfuncionを呼び出すことができます:あなたは1秒間
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();