您好我正在尝试获取触发onsubmit事件的表单的id。我在页面中有很多表单,所以我需要这样做。我已经尝试了测试方法中的那些并且所有这些都返回“未定义”
<form id="addToBasketForm_39" title="" method="post" onsubmit="test()">
<input type="hidden" name="product_id" value="39">
<input type="hidden" name="_token" value="M1kqlhvmIsZr9N8amTF84lwZeTuMgopHchEt4nhs">
<a id="submit" class="add-to-cart" onclick="$('#addToBasketForm_39').submit()" >
<i class="fa fa-shopping-cart"></i>Sepete Ekle</a>
</form>
function test(){
var formID = $(this).parents("form").attr("id");
//var formID = $(this).closest("form").attr('id');
//var formID = $(this).closest("form[id]").attr('id');
alert(formID + ' form submitted');
}
答案 0 :(得分:3)
我建议你使用不显眼的事件处理程序而不是丑陋的内联事件处理程序。
$('form').on('submit', test)
在功能
中function test(){
console.log(this.id);
}
根据当前代码,传递当前元素上下文,即this
<form id="addToBasketForm_39" onsubmit="test(this)">
访问代码中的上下文
function test(element){
console.log(element.id)
}
答案 1 :(得分:3)
以下是如何以不引人注目的方式分配给所有提交链接
也绝不使用名称或ID submit
,它可以轻松隐藏提交事件
最后,ID必须是唯一的,我从锚
中删除了不再使用的ID
$(function() {
$(".add-to-cart").on("click", function(e) { // anything with class add-to-cart
e.preventDefault(); // cancel the link
var $form = $(this).closest("form"); // The form this add-to-cart is in
test($form.attr("id")); // not sure what you want here
$form[0].submit(); // submit the actual DOM form
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<form id="addToBasketForm_39" title="" method="post">
<input type="hidden" name="product_id" value="39">
<input type="hidden" name="_token" value="M1kqlhvmIsZr9N8amTF84lwZeTuMgopHchEt4nhs">
<a class="add-to-cart" href="#"><i class="fa fa-shopping-cart"></i>Sepete Ekle</a>
</form>
答案 2 :(得分:0)
<form id="addToBasketForm_39" title="" method="post" onsubmit="test(this)">
<input type="hidden" name="product_id" value="39">
<input type="hidden" name="_token" value="M1kqlhvmIsZr9N8amTF84lwZeTuMgopHchEt4nhs">
<a id="submit" class="add-to-cart" onclick="$('#addToBasketForm_39').submit()" >
<i class="fa fa-shopping-cart"></i>Sepete Ekle</a>
</form>
<script type="text/javascript">
function test(event)
{
var id = event.id;
alert(id);
}
</script>