使用 jquery 插件选择表单中所有输入的最佳方法是什么

发布于 2024-12-09 16:53:32 字数 832 浏览 0 评论 0原文

我正在制作自己的 jQuery 验证插件。在插件中选择具有 data-validate 属性的输入字段的最佳方法是什么?为了澄清,插件可以发送 $('form').validate() 它可能正在处理给定页面上的多个表单

新问题 所以我现在使用的

    var options =  $.extend(defaults, options);
    return this.each(function() 
    {
    form=this;
    //lazy
    $(this).submit(function()
    {

        var o = options;
        $('['+o.attr+']', form).each(function()
        {
            var val=$(this).val()
            alert($(this).attr('name'))
        })
        //if errors
        //encapsulate error group
        //add to html with .after()
        return false;
        //no errors send
    })
    });

情况是,由于某种原因,该插件只获取最后一种形式。注意我只有插件 o.attr 值的主要功能是 data-validate ,它可以工作。 这是我在 http://yamikowebs.com/_test/project/

I'm making my own jQuery validation plug in. What is the best method to select the input fields with an attribute of data-validate in the plugin? for clarification the plugin can be sent $('form').validate()
it possible it may be working on more than 1 form on a given page

new problem
so Im now using

    var options =  $.extend(defaults, options);
    return this.each(function() 
    {
    form=this;
    //lazy
    $(this).submit(function()
    {

        var o = options;
        $('['+o.attr+']', form).each(function()
        {
            var val=$(this).val()
            alert($(this).attr('name'))
        })
        //if errors
        //encapsulate error group
        //add to html with .after()
        return false;
        //no errors send
    })
    });

whats happening is that for some reason the plugin is only getting the last form. note I only have the main function of the plugin o.attr value is data-validate which works.
here is a link to the page im making it on http://yamikowebs.com/_test/project/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

回心转意 2024-12-16 16:53:32
(function(){
    $.fn.myplugin = function(options) {
        return this.each(function(){ // <-- this part makes your function execute on every element passed to it
             $('input[data-validate]', this).each(function(){ // <-- this part iterates over all inputs with an attribute of "data-validate" in the current (", this" part) form
                 // do stuff here
             });
        });
    }
})(jQuery);

用法:

$('form').myplugin();
//  |
//  |
//   --- If multiple forms are on the page, jQuery will pass all of them to your plugin

进一步阅读:jQuery 插件创作。

编辑

奖励:工作小提琴来说明一切

编辑2

哎呀,累的时候不应该这样。更新了答案和小提琴以实际回答OP的问题。

(function(){
    $.fn.myplugin = function(options) {
        return this.each(function(){ // <-- this part makes your function execute on every element passed to it
             $('input[data-validate]', this).each(function(){ // <-- this part iterates over all inputs with an attribute of "data-validate" in the current (", this" part) form
                 // do stuff here
             });
        });
    }
})(jQuery);

Usage:

$('form').myplugin();
//  |
//  |
//   --- If multiple forms are on the page, jQuery will pass all of them to your plugin

Further reading: jQuery Plugin Authoring.

Edit

Bonus: Working Fiddle to illustrate it all

Edit 2

Yikes, shouldn't be on SO when tired. Updated answer and fiddle to actually answer the OP's question.

吐个泡泡 2024-12-16 16:53:32
$('input[data-validate]').each(function() { ... });
$('input[data-validate]').each(function() { ... });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文