jquery-placeholder-rails 2.0.7 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fc43a228cf81ad7714e7667e39ce9a15f316ca9d
|
4
|
+
data.tar.gz: d47edb1dcaf700f96ff4c2ca32f16c12533ef4bd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 795770998c968efe8f0512e6bd74069089827154f22ee9d03c97d7a35a1117c4e76cafcd2fd6a4cd2dcd8b1c8525be58bc17cbb225dc69e5a7fc1c7bef98ff0f
|
7
|
+
data.tar.gz: d05069709af725aa85e0a39aed3c11bf1e778f7caf336632108db604ff985d80570a50e020043d239121c08d311657ab46145b288250a33770d1befc36588670
|
@@ -1,16 +1,28 @@
|
|
1
|
-
/*! http://mths.be/placeholder v2.
|
2
|
-
|
1
|
+
/*! http://mths.be/placeholder v2.1.2 by @mathias */
|
2
|
+
(function(factory) {
|
3
|
+
if (typeof define === 'function' && define.amd) {
|
4
|
+
// AMD
|
5
|
+
define(['jquery'], factory);
|
6
|
+
} else if (typeof module === 'object' && module.exports) {
|
7
|
+
factory(require('jquery'));
|
8
|
+
} else {
|
9
|
+
// Browser globals
|
10
|
+
factory(jQuery);
|
11
|
+
}
|
12
|
+
}(function($) {
|
3
13
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
14
|
+
// Opera Mini v7 doesn't support placeholder although its DOM seems to indicate so
|
15
|
+
var isOperaMini = Object.prototype.toString.call(window.operamini) == '[object OperaMini]';
|
16
|
+
var isInputSupported = 'placeholder' in document.createElement('input') && !isOperaMini;
|
17
|
+
var isTextareaSupported = 'placeholder' in document.createElement('textarea') && !isOperaMini;
|
18
|
+
var valHooks = $.valHooks;
|
19
|
+
var propHooks = $.propHooks;
|
20
|
+
var hooks;
|
21
|
+
var placeholder;
|
10
22
|
|
11
23
|
if (isInputSupported && isTextareaSupported) {
|
12
24
|
|
13
|
-
placeholder =
|
25
|
+
placeholder = $.fn.placeholder = function() {
|
14
26
|
return this;
|
15
27
|
};
|
16
28
|
|
@@ -18,11 +30,17 @@
|
|
18
30
|
|
19
31
|
} else {
|
20
32
|
|
21
|
-
|
33
|
+
var settings = {};
|
34
|
+
|
35
|
+
placeholder = $.fn.placeholder = function(options) {
|
36
|
+
|
37
|
+
var defaults = {customClass: 'placeholder'};
|
38
|
+
settings = $.extend({}, defaults, options);
|
39
|
+
|
22
40
|
var $this = this;
|
23
41
|
$this
|
24
42
|
.filter((isInputSupported ? 'textarea' : ':input') + '[placeholder]')
|
25
|
-
.not('.
|
43
|
+
.not('.'+settings.customClass)
|
26
44
|
.bind({
|
27
45
|
'focus.placeholder': clearPlaceholder,
|
28
46
|
'blur.placeholder': setPlaceholder
|
@@ -38,21 +56,33 @@
|
|
38
56
|
hooks = {
|
39
57
|
'get': function(element) {
|
40
58
|
var $element = $(element);
|
41
|
-
|
59
|
+
|
60
|
+
var $passwordInput = $element.data('placeholder-password');
|
61
|
+
if ($passwordInput) {
|
62
|
+
return $passwordInput[0].value;
|
63
|
+
}
|
64
|
+
|
65
|
+
return $element.data('placeholder-enabled') && $element.hasClass(settings.customClass) ? '' : element.value;
|
42
66
|
},
|
43
67
|
'set': function(element, value) {
|
44
68
|
var $element = $(element);
|
69
|
+
|
70
|
+
var $passwordInput = $element.data('placeholder-password');
|
71
|
+
if ($passwordInput) {
|
72
|
+
return $passwordInput[0].value = value;
|
73
|
+
}
|
74
|
+
|
45
75
|
if (!$element.data('placeholder-enabled')) {
|
46
76
|
return element.value = value;
|
47
77
|
}
|
48
|
-
if (value
|
78
|
+
if (value === '') {
|
49
79
|
element.value = value;
|
50
80
|
// Issue #56: Setting the placeholder causes problems if the element continues to have focus.
|
51
|
-
if (element !=
|
81
|
+
if (element != safeActiveElement()) {
|
52
82
|
// We can't use `triggerHandler` here because of dummy text/password inputs :(
|
53
83
|
setPlaceholder.call(element);
|
54
84
|
}
|
55
|
-
} else if ($element.hasClass(
|
85
|
+
} else if ($element.hasClass(settings.customClass)) {
|
56
86
|
clearPlaceholder.call(element, true, value) || (element.value = value);
|
57
87
|
} else {
|
58
88
|
element.value = value;
|
@@ -62,14 +92,20 @@
|
|
62
92
|
}
|
63
93
|
};
|
64
94
|
|
65
|
-
|
66
|
-
|
95
|
+
if (!isInputSupported) {
|
96
|
+
valHooks.input = hooks;
|
97
|
+
propHooks.value = hooks;
|
98
|
+
}
|
99
|
+
if (!isTextareaSupported) {
|
100
|
+
valHooks.textarea = hooks;
|
101
|
+
propHooks.value = hooks;
|
102
|
+
}
|
67
103
|
|
68
104
|
$(function() {
|
69
105
|
// Look for forms
|
70
106
|
$(document).delegate('form', 'submit.placeholder', function() {
|
71
107
|
// Clear the placeholder values so they don't get submitted
|
72
|
-
var $inputs = $('.
|
108
|
+
var $inputs = $('.'+settings.customClass, this).each(clearPlaceholder);
|
73
109
|
setTimeout(function() {
|
74
110
|
$inputs.each(setPlaceholder);
|
75
111
|
}, 10);
|
@@ -78,7 +114,7 @@
|
|
78
114
|
|
79
115
|
// Clear placeholder values upon page reload
|
80
116
|
$(window).bind('beforeunload.placeholder', function() {
|
81
|
-
$('.
|
117
|
+
$('.'+settings.customClass).each(function() {
|
82
118
|
this.value = '';
|
83
119
|
});
|
84
120
|
});
|
@@ -87,8 +123,8 @@
|
|
87
123
|
|
88
124
|
function args(elem) {
|
89
125
|
// Return an object of element attributes
|
90
|
-
var newAttrs = {}
|
91
|
-
|
126
|
+
var newAttrs = {};
|
127
|
+
var rinlinejQuery = /^jQuery\d+$/;
|
92
128
|
$.each(elem.attributes, function(i, attr) {
|
93
129
|
if (attr.specified && !rinlinejQuery.test(attr.name)) {
|
94
130
|
newAttrs[attr.name] = attr.value;
|
@@ -98,11 +134,11 @@
|
|
98
134
|
}
|
99
135
|
|
100
136
|
function clearPlaceholder(event, value) {
|
101
|
-
var input = this
|
102
|
-
|
103
|
-
if (input.value == $input.attr('placeholder') && $input.hasClass(
|
137
|
+
var input = this;
|
138
|
+
var $input = $(input);
|
139
|
+
if (input.value == $input.attr('placeholder') && $input.hasClass(settings.customClass)) {
|
104
140
|
if ($input.data('placeholder-password')) {
|
105
|
-
$input = $input.hide().
|
141
|
+
$input = $input.hide().nextAll('input[type="password"]:first').show().attr('id', $input.removeAttr('id').data('placeholder-id'));
|
106
142
|
// If `clearPlaceholder` was called from `$.valHooks.input.set`
|
107
143
|
if (event === true) {
|
108
144
|
return $input[0].value = value;
|
@@ -110,30 +146,29 @@
|
|
110
146
|
$input.focus();
|
111
147
|
} else {
|
112
148
|
input.value = '';
|
113
|
-
$input.removeClass(
|
114
|
-
input ==
|
149
|
+
$input.removeClass(settings.customClass);
|
150
|
+
input == safeActiveElement() && input.select();
|
115
151
|
}
|
116
152
|
}
|
117
153
|
}
|
118
154
|
|
119
155
|
function setPlaceholder() {
|
120
|
-
var $replacement
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
if (input.type == 'password') {
|
156
|
+
var $replacement;
|
157
|
+
var input = this;
|
158
|
+
var $input = $(input);
|
159
|
+
var id = this.id;
|
160
|
+
if (input.value === '') {
|
161
|
+
if (input.type === 'password') {
|
127
162
|
if (!$input.data('placeholder-textinput')) {
|
128
163
|
try {
|
129
|
-
$replacement = $input.clone().
|
164
|
+
$replacement = $input.clone().prop({ 'type': 'text' });
|
130
165
|
} catch(e) {
|
131
166
|
$replacement = $('<input>').attr($.extend(args(this), { 'type': 'text' }));
|
132
167
|
}
|
133
168
|
$replacement
|
134
169
|
.removeAttr('name')
|
135
170
|
.data({
|
136
|
-
'placeholder-password':
|
171
|
+
'placeholder-password': $input,
|
137
172
|
'placeholder-id': id
|
138
173
|
})
|
139
174
|
.bind('focus.placeholder', clearPlaceholder);
|
@@ -144,14 +179,22 @@
|
|
144
179
|
})
|
145
180
|
.before($replacement);
|
146
181
|
}
|
147
|
-
$input = $input.removeAttr('id').hide().
|
182
|
+
$input = $input.removeAttr('id').hide().prevAll('input[type="text"]:first').attr('id', id).show();
|
148
183
|
// Note: `$input[0] != input` now!
|
149
184
|
}
|
150
|
-
$input.addClass(
|
185
|
+
$input.addClass(settings.customClass);
|
151
186
|
$input[0].value = $input.attr('placeholder');
|
152
187
|
} else {
|
153
|
-
$input.removeClass(
|
188
|
+
$input.removeClass(settings.customClass);
|
154
189
|
}
|
155
190
|
}
|
156
191
|
|
157
|
-
|
192
|
+
function safeActiveElement() {
|
193
|
+
// Avoid IE9 `document.activeElement` of death
|
194
|
+
// https://github.com/mathiasbynens/jquery-placeholder/pull/99
|
195
|
+
try {
|
196
|
+
return document.activeElement;
|
197
|
+
} catch (exception) {}
|
198
|
+
}
|
199
|
+
|
200
|
+
}));
|
metadata
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jquery-placeholder-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Navin Peiris
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-06-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.3'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
description: jQuery Placeholder for the Rails asset pipeline
|
@@ -45,7 +45,7 @@ executables: []
|
|
45
45
|
extensions: []
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
|
-
- .gitignore
|
48
|
+
- ".gitignore"
|
49
49
|
- Gemfile
|
50
50
|
- LICENSE.txt
|
51
51
|
- README.md
|
@@ -67,17 +67,17 @@ require_paths:
|
|
67
67
|
- lib
|
68
68
|
required_ruby_version: !ruby/object:Gem::Requirement
|
69
69
|
requirements:
|
70
|
-
- -
|
70
|
+
- - ">="
|
71
71
|
- !ruby/object:Gem::Version
|
72
72
|
version: '0'
|
73
73
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
|
-
- -
|
75
|
+
- - ">="
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '0'
|
78
78
|
requirements: []
|
79
79
|
rubyforge_project:
|
80
|
-
rubygems_version: 2.
|
80
|
+
rubygems_version: 2.4.5
|
81
81
|
signing_key:
|
82
82
|
specification_version: 4
|
83
83
|
summary: jQuery Placeholder is a utility used to enable HTML5 placeholder text in
|