From 7d9854a3bb8909dba60a5595dcfc5bbbe8317b57 Mon Sep 17 00:00:00 2001 From: Maxime Corson Date: Tue, 7 Jun 2011 02:51:19 -0700 Subject: [PATCH 1/2] Fix bug : now, when you delete the last character of a new tag, the previous tag is not removed. --- jquery.tagsinput.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/jquery.tagsinput.js b/jquery.tagsinput.js index ac37870..7e4f8cd 100644 --- a/jquery.tagsinput.js +++ b/jquery.tagsinput.js @@ -222,10 +222,11 @@ } }); //Delete last tag on backspace - data.removeWithBackspace && $(data.fake_input).bind('keyup', function(event) + data.removeWithBackspace && $(data.fake_input).bind('keydown', function(event) { if(event.keyCode == 8 && $(this).val() == '') { + event.preventDefault(); var last_tag = $(this).closest('.tagsinput').find('.tag:last').text(); var id = $(this).attr('id').replace(/_tag$/, ''); last_tag = last_tag.replace(/[\s]+x$/, ''); From 707bf84ee5f2eb83442c497ff1fafa5d49251222 Mon Sep 17 00:00:00 2001 From: Maxime Corson Date: Tue, 7 Jun 2011 02:53:33 -0700 Subject: [PATCH 2/2] Add the minified version for the fix --- jquery.tagsinput.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jquery.tagsinput.min.js b/jquery.tagsinput.min.js index 1dba5ae..44143c8 100644 --- a/jquery.tagsinput.min.js +++ b/jquery.tagsinput.min.js @@ -1 +1 @@ -(function(c){var a=new Array();var b=new Array();c.fn.addTag=function(e,d){var d=jQuery.extend({focus:false,callback:true},d);this.each(function(){id=c(this).attr("id");var g=c(this).val().split(a[id]);if(g[0]==""){g=new Array()}e=jQuery.trim(e);if(d.unique){skipTag=c(g).tagExist(e)}else{skipTag=false}if(e!=""&&skipTag!=true){c("").addClass("tag").append(c("").text(e).append("  "),c("",{href:"#",title:"Removing tag",text:"x"}).click(function(){return c("#"+id).removeTag(escape(e))})).insertBefore("#"+id+"_addTag");g.push(e);c("#"+id+"_tag").val("");if(d.focus){c("#"+id+"_tag").focus()}else{c("#"+id+"_tag").blur()}if(d.callback&&b[id]&&b[id]["onAddTag"]){var j=b[id]["onAddTag"];j(e)}if(b[id]&&b[id]["onChange"]){var h=g.length;var j=b[id]["onChange"];j(c(this),g[h])}}c.fn.tagsInput.updateTagsField(this,g)});return false};c.fn.removeTag=function(d){d=unescape(d);this.each(function(){id=c(this).attr("id");var e=c(this).val().split(a[id]);c("#"+id+"_tagsinput .tag").remove();str="";for(i=0;i
';if(e.interactive){f=f+''}f=f+'
';c(f).insertAfter(this);c(data.holder).css("width",e.width);c(data.holder).css("height",e.height);if(c(data.real_input).val()!=""){c.fn.tagsInput.importTags(c(data.real_input),c(data.real_input).val())}if(e.interactive){c(data.fake_input).val(c(data.fake_input).attr("data-default"));c(data.fake_input).css("color","#666666");c(data.holder).bind("click",data,function(g){c(g.data.fake_input).focus()});c(data.fake_input).bind("focus",data,function(g){if(c(g.data.fake_input).val()==c(g.data.fake_input).attr("data-default")){c(g.data.fake_input).val("")}c(g.data.fake_input).css("color","#000000")});if(e.autocomplete_url!=undefined){c(data.fake_input).autocomplete(e.autocomplete_url,e.autocomplete).bind("result",data,function(g,j,h){if(j){c(g.data.real_input).addTag(h,{focus:true,unique:(e.unique)})}});c(data.fake_input).bind("blur",data,function(g){if(c(".ac_results").is(":visible")){return false}if(c(g.data.fake_input).val()!=c(g.data.fake_input).attr("data-default")){if((g.data.minChars<=c(g.data.fake_input).val().length)&&(!g.data.maxChars||(g.data.maxChars>=c(g.data.fake_input).val().length))){c(g.data.real_input).addTag(c(g.data.fake_input).val(),{focus:false,unique:(e.unique)})}}c(g.data.fake_input).val(c(g.data.fake_input).attr("data-default"));c(g.data.fake_input).css("color","#666666");return false})}else{c(data.fake_input).bind("blur",data,function(g){var h=c(this).attr("data-default");if(c(g.data.fake_input).val()!=""&&c(g.data.fake_input).val()!=h){if((g.data.minChars<=c(g.data.fake_input).val().length)&&(!g.data.maxChars||(g.data.maxChars>=c(g.data.fake_input).val().length))){c(g.data.real_input).addTag(c(g.data.fake_input).val(),{focus:true,unique:(e.unique)})}}else{c(g.data.fake_input).val(c(g.data.fake_input).attr("data-default"));c(g.data.fake_input).css("color","#666666")}return false})}c(data.fake_input).bind("keypress",data,function(g){if(g.which==g.data.delimiter.charCodeAt(0)||g.which==13){if((g.data.minChars<=c(g.data.fake_input).val().length)&&(!g.data.maxChars||(g.data.maxChars>=c(g.data.fake_input).val().length))){c(g.data.real_input).addTag(c(g.data.fake_input).val(),{focus:true,unique:(e.unique)})}return false}});data.removeWithBackspace&&c(data.fake_input).bind("keyup",function(h){if(h.keyCode==8&&c(this).val()==""){var g=c(this).closest(".tagsinput").find(".tag:last").text();var j=c(this).attr("id").replace(/_tag$/,"");g=g.replace(/[\s]+x$/,"");c("#"+j).removeTag(escape(g));c(this).trigger("focus")}});c(data.fake_input).blur()}return false});return this};c.fn.tagsInput.updateTagsField=function(e,d){id=c(e).attr("id");c(e).val(d.join(a[id]))};c.fn.tagsInput.importTags=function(g,h){c(g).val("");id=c(g).attr("id");var d=h.split(a[id]);for(i=0;i").addClass("tag").append(c("").text(e).append("  "),c("
",{href:"#",title:"Removing tag",text:"x"}).click(function(){return c("#"+id).removeTag(escape(e))})).insertBefore("#"+id+"_addTag");g.push(e);c("#"+id+"_tag").val("");if(d.focus){c("#"+id+"_tag").focus()}else{c("#"+id+"_tag").blur()}if(d.callback&&b[id]&&b[id]["onAddTag"]){var j=b[id]["onAddTag"];j(e)}if(b[id]&&b[id]["onChange"]){var h=g.length;var j=b[id]["onChange"];j(c(this),g[h])}}c.fn.tagsInput.updateTagsField(this,g)});return false};c.fn.removeTag=function(d){d=unescape(d);this.each(function(){id=c(this).attr("id");var e=c(this).val().split(a[id]);c("#"+id+"_tagsinput .tag").remove();str="";for(i=0;i
';if(e.interactive){f=f+''}f=f+'
';c(f).insertAfter(this);c(data.holder).css("width",e.width);c(data.holder).css("height",e.height);if(c(data.real_input).val()!=""){c.fn.tagsInput.importTags(c(data.real_input),c(data.real_input).val())}if(e.interactive){c(data.fake_input).val(c(data.fake_input).attr("data-default"));c(data.fake_input).css("color","#666666");c(data.holder).bind("click",data,function(g){c(g.data.fake_input).focus()});c(data.fake_input).bind("focus",data,function(g){if(c(g.data.fake_input).val()==c(g.data.fake_input).attr("data-default")){c(g.data.fake_input).val("")}c(g.data.fake_input).css("color","#000000")});if(e.autocomplete_url!=undefined){c(data.fake_input).autocomplete(e.autocomplete_url,e.autocomplete).bind("result",data,function(g,j,h){if(j){c(g.data.real_input).addTag(h,{focus:true,unique:(e.unique)})}});c(data.fake_input).bind("blur",data,function(g){if(c(".ac_results").is(":visible")){return false}if(c(g.data.fake_input).val()!=c(g.data.fake_input).attr("data-default")){if((g.data.minChars<=c(g.data.fake_input).val().length)&&(!g.data.maxChars||(g.data.maxChars>=c(g.data.fake_input).val().length))){c(g.data.real_input).addTag(c(g.data.fake_input).val(),{focus:false,unique:(e.unique)})}}c(g.data.fake_input).val(c(g.data.fake_input).attr("data-default"));c(g.data.fake_input).css("color","#666666");return false})}else{c(data.fake_input).bind("blur",data,function(g){var h=c(this).attr("data-default");if(c(g.data.fake_input).val()!=""&&c(g.data.fake_input).val()!=h){if((g.data.minChars<=c(g.data.fake_input).val().length)&&(!g.data.maxChars||(g.data.maxChars>=c(g.data.fake_input).val().length))){c(g.data.real_input).addTag(c(g.data.fake_input).val(),{focus:true,unique:(e.unique)})}}else{c(g.data.fake_input).val(c(g.data.fake_input).attr("data-default"));c(g.data.fake_input).css("color","#666666")}return false})}c(data.fake_input).bind("keypress",data,function(g){if(g.which==g.data.delimiter.charCodeAt(0)||g.which==13){if((g.data.minChars<=c(g.data.fake_input).val().length)&&(!g.data.maxChars||(g.data.maxChars>=c(g.data.fake_input).val().length))){c(g.data.real_input).addTag(c(g.data.fake_input).val(),{focus:true,unique:(e.unique)})}return false}});data.removeWithBackspace&&c(data.fake_input).bind("keydown",function(h){if(h.keyCode==8&&c(this).val()==""){h.preventDefault();var g=c(this).closest(".tagsinput").find(".tag:last").text();var j=c(this).attr("id").replace(/_tag$/,"");g=g.replace(/[\s]+x$/,"");c("#"+j).removeTag(escape(g));c(this).trigger("focus")}});c(data.fake_input).blur()}return false});return this};c.fn.tagsInput.updateTagsField=function(e,d){id=c(e).attr("id");c(e).val(d.join(a[id]))};c.fn.tagsInput.importTags=function(g,h){c(g).val("");id=c(g).attr("id");var d=h.split(a[id]);for(i=0;i