我无法弄清楚如何将匿名函数附加到表单的onsubmit事件。我想将匿名AJAX JS逻辑绑定到反馈表单。我不想依赖于独特的ID。
我正在使用
feedbackform.onsubmit = function (e) {
但如果我有几个嵌入的same feedbackform forms,那就不行。
前进的方法可能是使用onsubmit="return feedback()"
,但我无法弄清楚如何从feedback function访问表单的内容。
答案 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();
});