form icon indicating copy to clipboard operation
form copied to clipboard

.selector property is removed

Open geoffreyk opened this issue 12 years ago • 4 comments

http://jquery.com/upgrade-guide/1.9/#selector-property-on-jquery-objects

As of 1.9, the .selector property is gone. Looks like it is still hanging around in in ajaxForm. Unless I am reading this wrong, .selector needs to be dealt with.

$.fn.ajaxForm = function(options) { options = options || {}; options.delegation = options.delegation && $.isFunction($.fn.on);

// in jQuery 1.3+ we can fix mistakes with the ready state
if (!options.delegation && this.length === 0) {
    var o = { s: this.selector, c: this.context };
    if (!$.isReady && o.s) {
        log('DOM not ready, queuing ajaxForm');
        $(function() {
            $(o.s,o.c).ajaxForm(options);
        });
        return this;
    }
    // is your DOM ready?  http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
    log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));
    return this;
}

if ( options.delegation ) {
    $(document)
        .off('submit.form-plugin', this.selector, doAjaxSubmit)
        .off('click.form-plugin', this.selector, captureSubmittingElement)
        .on('submit.form-plugin', this.selector, options, doAjaxSubmit)
        .on('click.form-plugin', this.selector, options, captureSubmittingElement);
    return this;
}

return this.ajaxFormUnbind()
    .bind('submit.form-plugin', options, doAjaxSubmit)
    .bind('click.form-plugin', options, captureSubmittingElement);

};

geoffreyk avatar Aug 26 '13 23:08 geoffreyk

Agreed this is a problem, but use of .selector is necessary for proper handling of ajaxForm's "delegation" option. If you ask me, the "delegation" option should be deprecated altogether and any code adding new <form> elements should be responsible for issuing the corresponding .ajaxForm(~) calls itself.

I'll put together a pull request for this later today.

ghost avatar Aug 30 '13 14:08 ghost

The selector property is not gone, it is deprecated.

malsup avatar Sep 02 '13 19:09 malsup

ah, yes. Sorry about that. I picked this out when I was sweeping my code for .live(). Not really sure what the work around will be if/when it is actually removed.

geoffreyk avatar Sep 02 '13 21:09 geoffreyk

It looks like jQuery 3 finally removed .selector. https://jquery.com/upgrade-guide/3.0/#breaking-change-deprecated-context-and-selector-properties-removed Has anybody used the plugin with jQuery 3.x? Does it error?

I'm really not sure what this portion of the plugin code is doing, or how to refactor it. Help would definitely be appreciated!

kevindb avatar Feb 21 '17 00:02 kevindb