jquery在提交时确定表单的名称/ ID

时间:2011-05-30 17:37:23

标签: jquery

我在document.ready上运行了以下jquery代码

formobj.submit(function(e){
  if ( submitted ) {
    return false;
  } else {
    submitted = true;
    return true;
  }
});

页面上经常有多个表单。我需要知道哪个表单触发了提交。我看到“e”对象有一个目标值,但似乎无法利用它来检索唯一ID。

4 个答案:

答案 0 :(得分:4)

HTML:

<form id="my_form" method="post" action="">
    <input type="submit" />
</form>

使用Javascript:

$('form').submit(function(e) {
    e.preventDefault();
    console.log(e.target.id); // my_form
    // equivalent to
    console.log($(this).attr('id')); // my_form 
});

答案 1 :(得分:3)

它应该与e.target.id一起使用。但是当你使用jQuery时,你也可以尝试$(this).attr('id')

当然,表格需要有正确的ID设置。

同样适用于name

答案 2 :(得分:0)

'this'对象应该绑定到事件处理程序上下文中的提交表单。例如:

<!DOCTYPE html>
<html lang="en">
<head></head>
<body>
<form id="aForm1"><input type="submit"/></form>
<form id="aForm2"><input type="submit"/></form>
<form id="aForm3"><input type="submit"/></form>
<script src="jquery-1.6.1.min.js"></script>
<script>
$(document).ready(function() {
    $("form").submit(function(e) {
        $(document.body).append('which form is this?: ' + String(this.id));
        $(document.body).append($('<br/>'));
        e.preventDefault();
        });
});
</script>
</body>
</html>

答案 3 :(得分:0)

您可以使用:

$("form").submit(function() {
    alert($(this).attr('id'));
});

你可以在这里看到这个运行的一个例子: http://jsfiddle.net/HNVyU/