0

我不知道如何将匿名函数附加到表单的 onsubmit 事件。我想将匿名 AJAX JS 逻辑绑定到反馈表单。我不想依赖唯一的 ID。

我正在使用

feedbackform.onsubmit = function (e) {

但是,如果我嵌入了几个相同的反馈表单,那将无法正常工作。

一种前进的方式可能是使用onsubmit="return feedback()",但是我无法弄清楚如何从反馈功能访问表单的内容。

4

3 回答 3

2

在您的反馈功能内部更改feedbackform.this..

于 2013-10-30T04:54:41.620 回答
1

在这里发布我们的代码是一个好主意,而不是在其他地方发布,只要发布在这里,它就可能可用也可能不可用。

您依赖的做法是 IE 将 ID 和 NAME 属性值转换为引用相关元素的全局对象的属性。这被广泛认为是“坏事”,但被大多数其他浏览器复制以与 IE 兼容(当时大多数网站几乎都是专门为 IE 编写的,拥有大约 95% 的用户份额)。

然后是开放标准和支持它们的齐心协力。现在没有任何人使用它,尽管它仍然受到支持。

无论如何,全局feedbackForm将引用名为feedbackForm的单个表单,或者如果有多个元素,则引用名为feedbackForm的元素集合,就像你这样做时得到的一样document.getElementsByName('feedbackForm')

当然,除非您声明一个名为feedbackForm的函数或全局变量(看看为什么这是一个坏主意?)。

因此,您可以遍历该集合以找到所需的表单,或者按照One of One 的建议,您可以从提交侦听器传递对表单的引用:

<form onsubmit="return feedback(this)" ...>

并在函数中:

function feedback(feedbackForm) {

所以现在局部变量feedbackForm引用了其处理程序调用该函数的表单。

于 2013-10-30T05:24:32.807 回答
0

您可以通过以下方式访问内容:

$('feedbackform').submit(function() {
  $(this).serialize();      
});
于 2013-10-30T04:56:21.093 回答