|
20 | 20 | this.each(function() { |
21 | 21 | var id = $(this).attr('id'); |
22 | 22 |
|
23 | | - var tagslist = $(this).val().split(delimiter[id]); |
| 23 | + var tagslist = $(this).val().split(_getDelimiter(delimiter[id])); |
24 | 24 | if (tagslist[0] === '') tagslist = []; |
25 | 25 |
|
26 | 26 | value = jQuery.trim(value); |
|
69 | 69 | this.each(function() { |
70 | 70 | var id = $(this).attr('id'); |
71 | 71 |
|
72 | | - var old = $(this).val().split(delimiter[id]); |
| 72 | + var old = $(this).val().split(_getDelimiter(delimiter[id])); |
73 | 73 |
|
74 | 74 | $('#' + id + '_tagsinput .tag').remove(); |
75 | 75 |
|
76 | 76 | var str = ''; |
77 | 77 | for (i = 0; i < old.length; ++i) { |
78 | 78 | if (old[i] != value) { |
79 | | - str = str + delimiter[id] + old[i]; |
| 79 | + str = str + _getDelimiter(delimiter[id]) + old[i]; |
80 | 80 | } |
81 | 81 | } |
82 | 82 |
|
|
93 | 93 |
|
94 | 94 | $.fn.tagExist = function(val) { |
95 | 95 | var id = $(this).attr('id'); |
96 | | - var tagslist = $(this).val().split(delimiter[id]); |
| 96 | + var tagslist = $(this).val().split(_getDelimiter(delimiter[id])); |
97 | 97 | return (jQuery.inArray(val, tagslist) >= 0); |
98 | 98 | }; |
99 | 99 |
|
|
131 | 131 | if (settings.hide) $(this).hide(); |
132 | 132 |
|
133 | 133 | var id = $(this).attr('id'); |
134 | | - if (!id || delimiter[$(this).attr('id')]) { |
| 134 | + if (!id || _getDelimiter(delimiter[$(this).attr('id')])) { |
135 | 135 | id = $(this).attr('id', 'tags' + new Date().getTime() + (uniqueIdCounter++)).attr('id'); |
136 | 136 | } |
137 | 137 |
|
|
178 | 178 | $(this).addClass('focus'); |
179 | 179 | }); |
180 | 180 |
|
| 181 | + $(data.fake_input).on('focus', data, function(event) { |
| 182 | + $(data.holder).addClass('focus'); |
| 183 | + }); |
| 184 | + |
181 | 185 | $(data.fake_input).on('blur', data, function(event) { |
182 | 186 | $(data.holder).removeClass('focus'); |
183 | 187 | }); |
|
260 | 264 | value = value.replace(/\n/g, ''); |
261 | 265 | value = value.replace(/\s/g, ''); |
262 | 266 |
|
263 | | - var tags = _splitIntoTags(event, value); |
| 267 | + var tags = _splitIntoTags(event.data.delimiter, value); |
264 | 268 |
|
265 | 269 | if (tags.length > 0) { |
266 | 270 | for (var i = 0; i < tags.length; ++i) { |
|
304 | 308 |
|
305 | 309 | $.fn.tagsInput.updateTagsField = function(obj, tagslist) { |
306 | 310 | var id = $(obj).attr('id'); |
307 | | - $(obj).val(tagslist.join(delimiter[id])); |
| 311 | + $(obj).val(tagslist.join(_getDelimiter(delimiter[id]))); |
308 | 312 | }; |
309 | 313 |
|
310 | 314 | $.fn.tagsInput.importTags = function(obj, val) { |
311 | 315 | $(obj).val(''); |
312 | 316 |
|
313 | 317 | var id = $(obj).attr('id'); |
314 | | - var tags = val.split(delimiter[id]); |
| 318 | + var tags = _splitIntoTags(delimiter[id], val); |
315 | 319 |
|
316 | 320 | for (i = 0; i < tags.length; ++i) { |
317 | 321 | $(obj).addTag(tags[i], { |
|
330 | 334 | } |
331 | 335 | }; |
332 | 336 |
|
| 337 | + var _getDelimiter = function(delimiter) { |
| 338 | + if (typeof delimiter === 'undefined') { |
| 339 | + return delimiter; |
| 340 | + } else if (typeof delimiter === 'string') { |
| 341 | + return delimiter; |
| 342 | + } else { |
| 343 | + return delimiter[0]; |
| 344 | + } |
| 345 | + }; |
| 346 | + |
333 | 347 | var _validateTag = function(value, options, tagslist) { |
334 | 348 | var result = true; |
335 | 349 |
|
|
364 | 378 | return found; |
365 | 379 | }; |
366 | 380 |
|
367 | | - var _splitIntoTags = function(event, value) { |
| 381 | + var _splitIntoTags = function(delimiter, value) { |
368 | 382 | if (value === '') return []; |
369 | 383 |
|
370 | | - var tags; |
371 | | - if (typeof event.data.delimiter === 'string') { |
372 | | - tags = value.split(event.data.delimiter); |
| 384 | + if (typeof delimiter === 'string') { |
| 385 | + var tags = value.split(delimiter); |
373 | 386 |
|
374 | 387 | if (tags.length > 1) { |
375 | 388 | return tags; |
376 | 389 | } else { |
377 | 390 | return []; |
378 | 391 | } |
379 | 392 | } else { |
380 | | - $.each(event.data.delimiter, function(index, delimiter) { |
381 | | - tags = value.split(delimiter); |
382 | | - if (tags.length > 1) { |
383 | | - return false; |
384 | | - } else { |
385 | | - tags = []; |
386 | | - } |
| 393 | + var tmpDelimiter = '∞'; |
| 394 | + var text = value; |
| 395 | + |
| 396 | + $.each(delimiter, function(index, _delimiter) { |
| 397 | + text = text.split(_delimiter).join(tmpDelimiter); |
387 | 398 | }); |
388 | 399 |
|
389 | | - return tags; |
| 400 | + var tags = text.split(tmpDelimiter); |
| 401 | + |
| 402 | + if (tags.length > 1) { |
| 403 | + return tags; |
| 404 | + } else { |
| 405 | + return []; |
| 406 | + } |
390 | 407 | } |
391 | 408 |
|
392 | 409 | return []; |
|
0 commit comments