gpt4 book ai didi

javascript - 具有多种表单的表单插件 |提交返回最后一个表格

转载 作者:行者123 更新时间:2023-12-02 20:02:48 27 4
gpt4 key购买 nike

我正在编写自己的表单验证插件。我正在一个页面上处理多个表单。提交表单后,它就会被验证。我遇到的问题是,在插件中我可以查看表单的元素,但在 .submit 中我只能访问发送到 j!uery 的集合的最后一个表单。我的html有2种形式。 on 有一个名为 num 的输入,另一个有一个名为 alpha 的输入。他们都有自己的提交按钮。下面是 jQuery 插件的主要部分。对于插件,我只是发送形式。 o.attr 存储属性名称和验证规则。

    var options =  $.extend(defaults, options);
return this.each(function()
{
form=this;
var o = options;
//this gets me both inputs on page load
$('['+o.attr+']', form).each(function()
{
var val=$(this).val()
alert($(this).attr('name'))
})
//on submit It will alert the last forms input regardless of what form i submited
$(this).submit(function()
{
var o = options;
$('['+o.attr+']', form).each(function()
{
var val=$(this).val()
alert($(this).attr('name'))
})
return false;
})
});

最佳答案

form=this;

您忘记声明表单 var,因此它是一个意外的全局变量,并未按您的预期在闭包中捕获。

因此,当调用 submit 函数时,form 将始终保留 this 的最后一个值,无论提交的是哪个表单。

(在代码上使用 lint 工具,或支持 ECMAScript Fith Edition 严格模式的浏览器来检测意外的全局变量。)

关于javascript - 具有多种表单的表单插件 |提交返回最后一个表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7788285/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com