JQuery并在许多表单中获得1个隐藏值

时间:2012-01-15 05:35:47

标签: javascript jquery jquery-selectors

我有多种形式:

<form method="post" action="change.php" id="form1">
   <input name="product_id" type="hidden" value="abc" />
   <input name="button_name" id="submit1" type="submit" value="ADD" />
</form>

<form method="post" action="change.php" id="form2>
   <input name="product_id" type="hidden" value="xyz" />
   <input name="button_name" id="submit2" type="submit" value="ADD" />
</form>

当我有一个表单时,我知道如何只获取一个值,但是如何获得与按钮单击相对应的隐藏值? 例如,点击form2的按钮,我得到“xyz”?

或者在我的整个页面上放一个大的表单并将隐藏值附加到按钮本身会更好吗? (我只需要传递给change.php的一个值)

2 个答案:

答案 0 :(得分:2)

以下代码将处理程序附加到所有表单,但以与当前提交事件关联的形式获取隐藏字段的值:

$("form").submit(function() {
   var $product_id = $(this).find('input[name="product_id"]');
   alert("Value within form " + this.id + ": " +$product_id.val());
});

演示:http://jsfiddle.net/jB88N/

显然,你做的事情比仅提醒值更有用,但上面显示了如何获得它。在处理程序中,this是提交的表单。

答案 1 :(得分:0)

您可以为所有表单创建一个事件处理程序。

$('form[id^="form"]').on('submit', function() {
  var hiddenValue = $('input[name="product_id"]', this).val();
});

但是最好只使用AJAX。