我有一个包含很多表单的页面,用户将在该页面上选择一些内容。当用户这样做时,我需要将该元素放在其他地方,就像购物车一样。但我似乎无法获得超过页面上第一个实际按预期工作的表单。 我尝试了很多东西:
$('#something')
没有捕获它,因为它不匹配。所以我在想我会怎么做。我只需要从页面上提交的表单中接收数据。如上所述,我可以给他们所有类型的前缀,就像我现在一样,但后来我不知道如何匹配它。
帮助会非常受欢迎!
根据要求提供一些代码(当然只是一个显示我的意思的例子):
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-%接受“ - ”之后的任何内容,我希望你理解。
答案 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!")
}
});