/* * jQuery Mobile Framework : "button" plugin - links that proxy to native input/buttons * Copyright (c) jQuery Project * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license */ (function( $, undefined ) { $.widget( "mobile.button", $.mobile.widget, { options: { theme: null, icon: null, iconpos: null, inline: null, corners: true, shadow: true, iconshadow: true, initSelector: "button, [type='button'], [type='submit'], [type='reset'], [type='image']" }, _create: function() { var $el = this.element, o = this.options, type, name, $buttonPlaceholder; // Add ARIA role this.button = $( "
" ) .text( $el.text() || $el.val() ) .buttonMarkup({ theme: o.theme, icon: o.icon, iconpos: o.iconpos, inline: o.inline, corners: o.corners, shadow: o.shadow, iconshadow: o.iconshadow }) .insertBefore( $el ) .append( $el.addClass( "ui-btn-hidden" ) ); type = $el.attr( "type" ); name = $el.attr( "name" ); // Add hidden input during submit if input type="submit" has a name. if ( type !== "button" && type !== "reset" && name ) { $el.bind( "vclick", function() { // Add hidden input if it doesn’t already exist. if( $buttonPlaceholder === undefined ) { $buttonPlaceholder = $( "", { type: "hidden", name: $el.attr( "name" ), value: $el.attr( "value" ) }) .insertBefore( $el ); // Bind to doc to remove after submit handling $( document ).submit(function(){ $buttonPlaceholder.remove(); }); } }); } this.refresh(); }, enable: function() { this.element.attr( "disabled", false ); this.button.removeClass( "ui-disabled" ).attr( "aria-disabled", false ); return this._setOption( "disabled", false ); }, disable: function() { this.element.attr( "disabled", true ); this.button.addClass( "ui-disabled" ).attr( "aria-disabled", true ); return this._setOption( "disabled", true ); }, refresh: function() { if ( this.element.attr( "disabled" ) ) { this.disable(); } else { this.enable(); } } }); //auto self-init widgets $( document ).bind( "pagecreate create", function( e ){ $.mobile.button.prototype.enhanceWithin( e.target ); }); })( jQuery );