From 0024cbd5b911fb04ef62be126ae701001f760941 Mon Sep 17 00:00:00 2001 From: Jovanni Lo Date: Tue, 8 Apr 2014 14:03:24 +0800 Subject: [PATCH 1/4] Few key options New options added to the plugin. Updated docs as well --- docs/60b9f73e-fefd-40ea-aabd-8088357eedd8.dmp | Bin 0 -> 123927 bytes docs/index.html | 41 ++++++++++++++++++ js/bootstrap-tag.js | 10 +++-- 3 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 docs/60b9f73e-fefd-40ea-aabd-8088357eedd8.dmp diff --git a/docs/60b9f73e-fefd-40ea-aabd-8088357eedd8.dmp b/docs/60b9f73e-fefd-40ea-aabd-8088357eedd8.dmp new file mode 100644 index 0000000000000000000000000000000000000000..35db5eec4f1f360ce4dbf3c1f45afe327bc2d578 GIT binary patch literal 123927 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 S?$%DPTX(Y&?2fl$1pWpWGug!e literal 0 HcmV?d00001 diff --git a/docs/index.html b/docs/index.html index f6302a7..2cffa2b 100644 --- a/docs/index.html +++ b/docs/index.html @@ -33,6 +33,24 @@

Example

<input type="text" name="tags" data-provide="tag">
+ +

Heres a javascript example. Separated by semi-colon (186), return/enter (13) and tab (9)

+
+ +
+
+<script>
+    $(function() {
+        var usStates = ["Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Delaware","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Dakota","North Carolina","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","West Virginia","Wisconsin","Wyoming"];
+        
+        $('#tags').tag({
+          autocompleteOnKey: 186,
+          addKeys: [186, 13, 9],
+          source: usStates
+        })
+    })
+</script>
+

Usage

Via data attributes

@@ -77,6 +95,18 @@

Options

false Autocomplete on comma type with the first suggested value (if any). + + autocompleteOnKey + int + -1 + Autocomplete on this keyCode (188 for comma) type with the first suggested value (if any). + + + addKeys + array + [188, 13, 9] + Add the tag if any of these keys are pressed. Default Comma (188), Return/Enter (13) and Tab (9) +

Methods

@@ -121,5 +151,16 @@

Events

}) }(window.jQuery) + \ No newline at end of file diff --git a/js/bootstrap-tag.js b/js/bootstrap-tag.js index bcbc80f..aad22e0 100644 --- a/js/bootstrap-tag.js +++ b/js/bootstrap-tag.js @@ -63,12 +63,14 @@ that.skip = false }) .on('keydown', function ( event ) { - if ( event.keyCode == 188 || event.keyCode == 13 || event.keyCode == 9 ) { + //if ( event.keyCode == 188 || event.keyCode == 13 || event.keyCode == 9 ) { + if ( $.inArray(event.keyCode, that.options.addKeys) !== -1 && event.keyCode != 8 ) { if ( $.trim($(this).val()) && ( !that.element.siblings('.typeahead').length || that.element.siblings('.typeahead').is(':hidden') ) ) { if ( event.keyCode != 9 ) event.preventDefault() that.process() - } else if ( event.keyCode == 188 ) { - if ( !that.options.autocompleteOnComma ) { + //} else if ( event.keyCode == 188 ) { + } else if ( event.keyCode == 188 || event.keyCode == that.options.autocompleteOnKey ) { + if ( !that.options.autocompleteOnComma && that.options.autocompleteOnKey === -1 ) { event.preventDefault() that.process() } @@ -190,7 +192,9 @@ allowDuplicates: false , caseInsensitive: true , autocompleteOnComma: false + , autocompleteOnKey: -1 , placeholder: '' + , addKeys: [188, 13, 9] , source: [] } From 914fb0d9d067e41bb2f42e717d2c5cb3211e4682 Mon Sep 17 00:00:00 2001 From: Jovanni Lo Date: Tue, 8 Apr 2014 14:14:50 +0800 Subject: [PATCH 2/4] Added Separator option separator option added to the plugin --- docs/index.html | 10 ++++++---- js/bootstrap-tag.js | 5 +++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/docs/index.html b/docs/index.html index 2cffa2b..d39ef09 100644 --- a/docs/index.html +++ b/docs/index.html @@ -34,9 +34,9 @@

Example

<input type="text" name="tags" data-provide="tag">
-

Heres a javascript example. Separated by semi-colon (186), return/enter (13) and tab (9)

+

Heres a javascript example semi-colon separated values. Separated by semi-colon (186), return/enter (13) and tab (9)

- +
 <script>
@@ -46,7 +46,8 @@ 

Example

$('#tags').tag({ autocompleteOnKey: 186, addKeys: [186, 13, 9], - source: usStates + source: usStates, + separator: ';' }) }) </script>
@@ -158,7 +159,8 @@

Events

$('#tags').tag({ autocompleteOnKey: 186, addKeys: [186, 13, 9], - source: usStates + source: usStates, + separator: ';' }) }) diff --git a/js/bootstrap-tag.js b/js/bootstrap-tag.js index aad22e0..b01b685 100644 --- a/js/bootstrap-tag.js +++ b/js/bootstrap-tag.js @@ -24,7 +24,7 @@ var Tag = function ( element, options ) { this.element = $(element) this.options = $.extend(true, {}, $.fn.tag.defaults, options) - this.values = $.grep($.map(this.element.val().split(','), $.trim), function ( value ) { return value.length > 0 }) + this.values = $.grep($.map(this.element.val().split(this.options.separator), $.trim), function ( value ) { return value.length > 0 }) this.show() } @@ -166,7 +166,7 @@ } } , process: function () { - var values = $.grep($.map(this.input.val().split(','), $.trim), function ( value ) { return value.length > 0 }), + var values = $.grep($.map(this.input.val().split(this.options.separator), $.trim), function ( value ) { return value.length > 0 }), that = this $.each(values, function() { that.add(this) @@ -195,6 +195,7 @@ , autocompleteOnKey: -1 , placeholder: '' , addKeys: [188, 13, 9] + , separator: ',' , source: [] } From 12db9f43e1ed946e4d47b9b31d2d071becb3f83f Mon Sep 17 00:00:00 2001 From: Jovanni Lo Date: Tue, 8 Apr 2014 14:18:00 +0800 Subject: [PATCH 3/4] updated doc with the new option updated doc example --- docs/index.html | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/index.html b/docs/index.html index d39ef09..f499919 100644 --- a/docs/index.html +++ b/docs/index.html @@ -108,6 +108,12 @@

Options

[188, 13, 9] Add the tag if any of these keys are pressed. Default Comma (188), Return/Enter (13) and Tab (9) + + separator + string + ',' + The main separator of the input value. Comma as default +

Methods

From d6f120568375249f643b545689dc82b5b371533e Mon Sep 17 00:00:00 2001 From: Jovanni Lo Date: Wed, 9 Apr 2014 04:28:20 +0800 Subject: [PATCH 4/4] Added Add event Added Add event to trigger before it will add the tag --- docs/index.html | 11 +++++++++-- js/bootstrap-tag.js | 8 +++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/docs/index.html b/docs/index.html index f499919..fc0d31f 100644 --- a/docs/index.html +++ b/docs/index.html @@ -129,6 +129,10 @@

Events

+ + add + This event is fired immediately before a tag will be added. The event handler will pass an object obj.value for you to get or modify. + added This event is fired immediately after a tag has been successfully added. The event handler will be passed the value that was added. @@ -140,9 +144,12 @@

Events

-$('#myTag').on('added', function (e, value) {
+$('#myTag').on('add', function (e, t) {
+  t.value = t.value.split(' - ')[0];
+  // do other things before we add...
+}).on('added', function(e, value) {
   // do something...
-})
+} diff --git a/js/bootstrap-tag.js b/js/bootstrap-tag.js index b01b685..284f35b 100644 --- a/js/bootstrap-tag.js +++ b/js/bootstrap-tag.js @@ -63,12 +63,10 @@ that.skip = false }) .on('keydown', function ( event ) { - //if ( event.keyCode == 188 || event.keyCode == 13 || event.keyCode == 9 ) { if ( $.inArray(event.keyCode, that.options.addKeys) !== -1 && event.keyCode != 8 ) { if ( $.trim($(this).val()) && ( !that.element.siblings('.typeahead').length || that.element.siblings('.typeahead').is(':hidden') ) ) { if ( event.keyCode != 9 ) event.preventDefault() that.process() - //} else if ( event.keyCode == 188 ) { } else if ( event.keyCode == 188 || event.keyCode == that.options.autocompleteOnKey ) { if ( !that.options.autocompleteOnComma && that.options.autocompleteOnKey === -1 ) { event.preventDefault() @@ -138,6 +136,10 @@ , add: function ( value ) { var that = this + var addValue = {value: value}; + this.element.trigger('add', addValue); + value = addValue.value; + if ( !that.options.allowDuplicates ) { var index = that.inValues(value) if ( index != -1 ) { @@ -153,7 +155,7 @@ this.values.push(value) this.createBadge(value) - this.element.val(this.values.join(', ')) + this.element.val(this.values.join(that.options.separator + ' ')) this.element.trigger('added', [value]) } , remove: function ( index ) {