Skip to content

Commit 9761b44

Browse files
committed
1 parent 601e8e1 commit 9761b44

File tree

3 files changed

+21
-40
lines changed

3 files changed

+21
-40
lines changed

dist/jquery.tagsinput-revisited.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

example.html

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
<label>Simple tags input:</label>
4242
<input id="form-tags-1" name="tags-1" type="text" value="foo,bar,baz,roffle">
4343

44-
<!--
4544
<label>Tags input with callbacks (check console):</label>
4645
<input id="form-tags-2" name="tags-2" type="text" value="foo,bar,baz,roffle">
4746

@@ -56,7 +55,6 @@
5655

5756
<label>Tags input with array of delimiters (comma and semicolon):</label>
5857
<input id="form-tags-6" name="tags-4" type="text" value="foo;bar">
59-
-->
6058
</form>
6159

6260
<script type="text/javascript">

src/jquery.tagsinput-revisited.js

Lines changed: 20 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,13 @@
55

66
(function($) {
77
var delimiter = [];
8+
var inputSettings = [];
89
var callbacks = [];
910

1011
$.fn.addTag = function(value, options) {
1112
options = jQuery.extend({
1213
focus: false,
13-
callback: true,
14-
minChars: 0,
15-
maxChars: null,
16-
limit: null,
17-
validationPattern: null
14+
callback: true
1815
}, options);
1916

2017
this.each(function() {
@@ -25,7 +22,7 @@
2522

2623
value = jQuery.trim(value);
2724

28-
if ((options.unique && $(this).tagExist(value)) || !_validateTag(value, options, tagslist, delimiter[id])) {
25+
if ((options.unique && $(this).tagExist(value)) || !_validateTag(value, inputSettings[id], tagslist, delimiter[id])) {
2926
$('#' + id + '_tag').addClass('error');
3027
return false;
3128
}
@@ -131,7 +128,7 @@
131128

132129
var id = $(this).attr('id');
133130
if (!id || _getDelimiter(delimiter[$(this).attr('id')])) {
134-
id = $(this).attr('id', 'tags' + new Date().getTime() + (uniqueIdCounter++)).attr('id');
131+
id = $(this).attr('id', 'tags' + new Date().getTime() + (++uniqueIdCounter)).attr('id');
135132
}
136133

137134
var data = jQuery.extend({
@@ -143,6 +140,12 @@
143140
}, settings);
144141

145142
delimiter[id] = data.delimiter;
143+
inputSettings[id] = {
144+
minChars: settings.minChars,
145+
maxChars: settings.maxChars,
146+
limit: settings.limit,
147+
validationPattern: settings.validationPattern
148+
};
146149

147150
if (settings.onAddTag || settings.onRemoveTag || settings.onChange) {
148151
callbacks[id] = [];
@@ -190,11 +193,7 @@
190193
$(data.fake_input).on('autocompleteselect', data, function(event, ui) {
191194
$(event.data.real_input).addTag(ui.item.value, {
192195
focus: true,
193-
unique: settings.unique,
194-
minChars: settings.minChars,
195-
maxChars: settings.maxChars,
196-
limit: settings.limit,
197-
validationPattern: settings.validationPattern
196+
unique: settings.unique
198197
});
199198

200199
return false;
@@ -209,11 +208,7 @@
209208
$(data.fake_input).on('blur', data, function(event) {
210209
$(event.data.real_input).addTag($(event.data.fake_input).val(), {
211210
focus: true,
212-
unique: settings.unique,
213-
minChars: settings.minChars,
214-
maxChars: settings.maxChars,
215-
limit: settings.limit,
216-
validationPattern: settings.validationPattern
211+
unique: settings.unique
217212
});
218213

219214
return false;
@@ -227,11 +222,7 @@
227222

228223
$(event.data.real_input).addTag($(event.data.fake_input).val(), {
229224
focus: true,
230-
unique: settings.unique,
231-
minChars: settings.minChars,
232-
maxChars: settings.maxChars,
233-
limit: settings.limit,
234-
validationPattern: settings.validationPattern
225+
unique: settings.unique
235226
});
236227

237228
return false;
@@ -259,11 +250,7 @@
259250
for (var i = 0; i < tags.length; ++i) {
260251
$(event.data.real_input).addTag(tags[i], {
261252
focus: true,
262-
unique: settings.unique,
263-
minChars: settings.minChars,
264-
maxChars: settings.maxChars,
265-
limit: settings.limit,
266-
validationPattern: settings.validationPattern
253+
unique: settings.unique
267254
});
268255
}
269256

@@ -308,11 +295,7 @@
308295
for (i = 0; i < tags.length; ++i) {
309296
$(obj).addTag(tags[i], {
310297
focus: false,
311-
callback: false,
312-
minChars: 0,
313-
maxChars: null,
314-
limit: null,
315-
validationPattern: null
298+
callback: false
316299
});
317300
}
318301

@@ -332,14 +315,14 @@
332315
}
333316
};
334317

335-
var _validateTag = function(value, options, tagslist, delimiter) {
318+
var _validateTag = function(value, inputSettings, tagslist, delimiter) {
336319
var result = true;
337320

338321
if (value === '') result = false;
339-
if (value.length < options.minChars) result = false;
340-
if (options.maxChars !== null && value.length > options.maxChars) result = false;
341-
if (options.limit !== null && tagslist.length >= options.limit) result = false;
342-
if (options.validationPattern !== null && !options.validationPattern.test(value)) result = false;
322+
if (value.length < inputSettings.minChars) result = false;
323+
if (inputSettings.maxChars !== null && value.length > inputSettings.maxChars) result = false;
324+
if (inputSettings.limit !== null && tagslist.length >= inputSettings.limit) result = false;
325+
if (inputSettings.validationPattern !== null && !inputSettings.validationPattern.test(value)) result = false;
343326

344327
if (typeof delimiter === 'string') {
345328
if (value.indexOf(delimiter) > -1) result = false;

0 commit comments

Comments
 (0)