如果提交任何表单,如何检查jQuery?

时间:2013-02-19 23:19:39

标签: jquery forms onsubmit

我有一个包含很多表单的页面,用户将在该页面上选择一些内容。当用户这样做时,我需要将该元素放在其他地方,就像购物车一样。但我似乎无法获得超过页面上第一个实际按预期工作的表单。 我尝试了很多东西:

  1. 为所有表单提供相同的ID,这只会导致第一个表单按我的意愿行事,并向我提供该表单的数据。
  2. 再次给他们所有相同的ID,这次为ID添加唯一标识符,但当然,我的jQuery $('#something')没有捕获它,因为它不匹配。
  3. 所以我在想我会怎么做。我只需要从页面上提交的表单中接收数据。如上所述,我可以给他们所有类型的前缀,就像我现在一样,但后来我不知道如何匹配它。

    帮助会非常受欢迎!

    根据要求提供一些代码(当然只是一个显示我的意思的例子):

    HTML:

    <form id="something-0"><input type="hidden" value="0"><input type="submit"></form>
    <form id="something-1"><input type="hidden" value="1"><input type="submit"></form>
    

    jQuery:

    $("#something-%").submit(function(e) {
    e.preventDefault();
    $("#some-span").html(data);
    });
    

    我希望#something-%接受“ - ”之后的任何内容,我希望你理解。

3 个答案:

答案 0 :(得分:30)

作为一般答案,要对一组元素进行分类,请使用class属性,为每个元素指定相同的类名。然后,您可以按该类选择元素。一个元素可以有多个类。

$(".something");

如果必须使用id,则可以使用属性选择器:

$("[id^='something']");  // all elements with an id beginning with 'something'
$("[id$='something']");  // all elements with an id ending with 'something'

对于这个特定的问题,由于您想要对页面中的任何表单进行操作,最简单的选择是使用元素名称选择器:

$("form");

无论选择器如何,您都可以通过引用this处理程序中的submit()来确定提交的表单:

$("form").submit(function (e) {
    e.preventDefault();
    var formId = this.id;  // "this" is a reference to the submitted form
});

答案 1 :(得分:10)

您可以使用选择器'form'来捕获所有表单,例如

$("form").submit(function() {
  var theForm = $(this);
  var formID = theForm.attr("id");
  // do something
});

答案 2 :(得分:0)

像这样...

   $('#myForm').submit(function (e) {
     e.preventDefault;
     if (e.result == true) {
       alert("This form was submitted!")
     }
   });