0

私は自分のスキルをテストするために小さな商取引サイトを作成しています。このようなページに複数のフォームがあります

<div class="formInfo"><form name="CartForm" method="post" action="./ajax/addCart.php" class="fixed">
<input name="prodId" type="hidden" value="10" />
  <label for="qty">Quantity:</label>

  <input name="qty" type="text" id="qty" size="4" maxlength="6" class="qtyBox">
  <br>
  <input type="submit" name="addtoCart" id="addtoCart" value="Add to Cart" class="btnAdd">
</form>



<div class="formInfo"><form name="CartForm" method="post" action="./ajax/addCart.php" class="fixed">
<input name="prodId" type="hidden" value="7" />
  <label for="qty">Quantity:</label>

  <input name="qty" type="text" id="qty" size="4" maxlength="6" class="qtyBox">
  <br>
  <input type="submit" name="addtoCart" id="addtoCart" value="Add to Cart" class="btnAdd">
</form>


<div class="formInfo"><form name="CartForm" method="post" action="./ajax/addCart.php" class="fixed">
<input name="prodId" type="hidden" value="9" />
  <label for="qty">Quantity:</label>

  <input name="qty" type="text" id="qty" size="4" maxlength="6" class="qtyBox">
  <br>
  <input type="submit" name="addtoCart" id="addtoCart" value="Add to Cart" class="btnAdd">
</form>

サムビットボタンをクリックすると、隠しフィールドIDと可視フィールドQTA(現在クリックされているフォーム)の値を表示したいので、これまでのところ私のコードは

<script type="text/javascript">
$(document).ready(function(e) {
    $('.formInfo').submit(function() {
        alert($(this).val())
    });
});
</script>

わかりません。参照自体の値ではなく、「this」参照の「id」と「qty」の値が必要であることをjqueryに伝える方法

4

2 に答える 2

1

まず、同じ HTML ドキュメント内に同じid. qty1これらをやのようなものに変更する必要がありqty2ます。<div>イベントをフォームではなくにバインドしています。入力要素も選択する必要があります。これを試して:

$(document).ready(function(e) {
    $('.formInfo form').submit(function() {
        $("input[type=hidden],input[name=qty]",this).each(function(){
            alert($(this).val());
        });
    });
});
于 2012-07-11T20:04:18.093 に答える
0

前の回答で述べたように、id は一意である必要があります。submit を div ではなくフォームにバインドする必要があります。フォーム要素から名前でフォーム メンバーにアクセスできます。

$(document).ready(function(e) {
    $('.formInfo form').submit(function() {
        alert(this.prodId.value);
        alert(this.qty.value);
    });
});

フィドル

于 2012-07-11T20:10:06.747 に答える