каков наилучший способ выбрать все входные данные в форме с помощью плагина jquery

#jquery #jquery-plugins #jquery-selectors

#jquery #jquery-плагины #jquery-селекторы

Вопрос:

Я создаю свой собственный плагин проверки jQuery. Каков наилучший способ выбора полей ввода с атрибутом data-validate в плагине? для пояснения sent $('form').validate() , может быть, плагин может работать с более чем 1 формой на данной странице

новая проблема, поэтому я теперь использую

     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 — проверка данных, которая работает.
вот ссылка на страницу, на которой я ее создаю http://yamikowebs.com/_test/project /

Ответ №1:

 (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

Блин, не должно быть SO, когда устал. Обновленный ответ и скрипка, чтобы фактически ответить на вопрос OP.

Ответ №2:

 $('input[data-validate]').each(function() { ... });
  

Комментарии:

1. не будет делать. что делать, если плагин отправляется в форму и работает с более чем 1 формой

2. Для этого each и предназначен.

3. каждый из них перебирает ВСЕ входные данные с помощью проверки данных, включая другие формы на странице.