forked from jquery-archive/jquery-mobile
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjquery.mobile.forms.button.js
More file actions
76 lines (69 loc) · 1.75 KB
/
jquery.mobile.forms.button.js
File metadata and controls
76 lines (69 loc) · 1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/*
* 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
},
_create: function(){
var $el = this.element,
o = this.options;
//add ARIA role
this.button = $( "<div></div>" )
.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') );
//add hidden input during submit
var type = $el.attr('type');
if( type !== 'button' && type !== 'reset' ){
$el.bind("vclick", function(){
var $buttonPlaceholder = $("<input>",
{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();
}
}
});
})( jQuery );