2014-11-02 102 views
1

我有一個空的input#tags。 我有一個p#list_tags很少span.keyword。 當我單擊.keyword時,其文本附加到input.val() 但是,如果再次單擊它,我無法從val()中刪除它的文本。 我的代碼:刪除輸入值中的文本jquery

$("p#list_tags span.keyword").click(function() { 
    var tag = $(this).text(); 
    var tags = $("#tags").val(); 

    if($(this).hasClass('selected_tag')) { 
     $(this).removeClass('selected_tag'); 
     // Here, I don't know what to do... I've tried this, but... 
     // $("#tags").remove(":contains('" + tag + "')"); 
    } 
    else { 
     $("#tags").val(tags + ' ' + tag); 
     $(this).addClass('selected_tag'); 
    } 
}); 

回答

1

試試這個

$("p#list_tags span.keyword").click(function() { 
    var tag = $(this).text(); 
    var tags = $("#tags").val(); 

    if($(this).hasClass('selected_tag')) { 
     $(this).removeClass('selected_tag'); 

     //if that tag is last one, we need to append space before tag 
     var res = tags.split(" "); 
     var replaceString = ""; 
     if(res[res.length-1] == tag){ 
      replaceString = " " + tag; 
     }else{ 
      replaceString = tag + " "; 
     } 

     $("#tags").val(tags.replace(replaceString, "")); // Replace with empty value 
    } 
    else { 
     $("#tags").val(tags + ' ' + tag); 
     $(this).addClass('selected_tag'); 
    } 
}); 
+0

這值得一點上來!效果很好。 – 2014-11-18 08:32:05