mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-12-23 01:24:22 +00:00
bb49bd794b
Closes gh-2249
80 lines
1.8 KiB
JavaScript
80 lines
1.8 KiB
JavaScript
/*!
|
|
* jQuery UI Form Reset Mixin @VERSION
|
|
* https://jqueryui.com
|
|
*
|
|
* Copyright OpenJS Foundation and other contributors
|
|
* Released under the MIT license.
|
|
* https://jquery.org/license
|
|
*/
|
|
|
|
//>>label: Form Reset Mixin
|
|
//>>group: Core
|
|
//>>description: Refresh input widgets when their form is reset
|
|
//>>docs: https://api.jqueryui.com/form-reset-mixin/
|
|
|
|
( function( factory ) {
|
|
"use strict";
|
|
|
|
if ( typeof define === "function" && define.amd ) {
|
|
|
|
// AMD. Register as an anonymous module.
|
|
define( [
|
|
"jquery",
|
|
"./version"
|
|
], factory );
|
|
} else {
|
|
|
|
// Browser globals
|
|
factory( jQuery );
|
|
}
|
|
} )( function( $ ) {
|
|
"use strict";
|
|
|
|
return $.ui.formResetMixin = {
|
|
_formResetHandler: function() {
|
|
var form = $( this );
|
|
|
|
// Wait for the form reset to actually happen before refreshing
|
|
setTimeout( function() {
|
|
var instances = form.data( "ui-form-reset-instances" );
|
|
$.each( instances, function() {
|
|
this.refresh();
|
|
} );
|
|
} );
|
|
},
|
|
|
|
_bindFormResetHandler: function() {
|
|
this.form = $( this.element.prop( "form" ) );
|
|
if ( !this.form.length ) {
|
|
return;
|
|
}
|
|
|
|
var instances = this.form.data( "ui-form-reset-instances" ) || [];
|
|
if ( !instances.length ) {
|
|
|
|
// We don't use _on() here because we use a single event handler per form
|
|
this.form.on( "reset.ui-form-reset", this._formResetHandler );
|
|
}
|
|
instances.push( this );
|
|
this.form.data( "ui-form-reset-instances", instances );
|
|
},
|
|
|
|
_unbindFormResetHandler: function() {
|
|
if ( !this.form.length ) {
|
|
return;
|
|
}
|
|
|
|
var instances = this.form.data( "ui-form-reset-instances" );
|
|
instances.splice( $.inArray( this, instances ), 1 );
|
|
if ( instances.length ) {
|
|
this.form.data( "ui-form-reset-instances", instances );
|
|
} else {
|
|
this.form
|
|
.removeData( "ui-form-reset-instances" )
|
|
.off( "reset.ui-form-reset" );
|
|
}
|
|
}
|
|
};
|
|
|
|
} );
|