javascript - jquery this.attr ("action") 提交表单?

标签 javascript jquery

假设在 html 页面中有一个 id 为“serialform”的表单。

以下 JavaScript 按预期工作。

$( "#serialform" ).submit(function( event ) { 
    var action = $( "#serialform" ).attr("action");
    var serial = $("#serial").val()
     ...
     return event.preventDefault();
});

但是,如果我将函数的第一行替换为使用“this”:

$( "#serialform" ).submit(function( event ) { 
    var action = this.attr("action");
    var serial = $("#serial").val()
    ...
    return event.preventDefault();
});

然后表单提交而不是简单地返回 action 属性。 this 引用表单元素(根据 firebug)。

我原以为 this 等同于 $( "#serialform")。无论如何,我想获取正在提交的表单的 action 属性。

我正在使用 jQuery 2.0.3。

最佳答案

this 是对 DOM 节点的引用,而不是包装的 jQuery 节点。此 DOM 节点未实现 .attr 方法,因此会引发错误。

在调用 jQuery 方法之前,您需要将 DOM 节点包装在 jQuery 对象中,如下所示:$(this).attr('action')

关于javascript - jquery this.attr ("action") 提交表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20476114/

相关文章:

javascript - 使用 JQuery 将复选框添加到无序列表

javascript - 在完成之前的相同 Ajax 请求之前,不要发送 Ajax 请求

javascript - knockout JS : property specific css binding expression

jquery - 必填字段不适用于 ajax

jquery - jQuery .val() 和 .attr ('value' 之间的区别是什么?

jquery - 仅在 Chrome 中水平滑动时出现延迟

javascript - 事件监视器表单不断重定向

javascript - 检查 Protractor 中是否存在元素

jquery - 在 Django 中返回 AJAX 请求的表单错误

javascript - 在 jquery 中迭代以获取输入文本的值