如何绑定匿名函数以形成onsubmit,然后访问该表单的内容以进行AJAX提交?

时间:2013-10-30 04:50:25

标签: javascript forms

我无法弄清楚如何将匿名函数附加到表单的onsubmit事件。我想将匿名AJAX JS逻辑绑定到反馈表单。我不想依赖于独特的ID。

我正在使用

feedbackform.onsubmit = function (e) {

但如果我有几个嵌入的same feedbackform forms,那就不行。

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

3 个答案:

答案 0 :(得分:2)

在您的反馈功能中,将feedbackform.更改为this.

答案 1 :(得分: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 引用其处理程序称为函数的表单。

答案 2 :(得分:0)

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

$('feedbackform').submit(function() {
  $(this).serialize();      
});