1

Hey Leute ich habe diese zur automatischen Vervollständigung Plugin von Andrew Whitaker - DEMO Lets sagen, dass ich in einem TextArea-Jquery Autocomplete @mention

einen String haben

I "@peterwateber welcome" möchte es in einem versteckten Tag als

ausgeben

"@ [peterwateber] willkommen"

wie soll ich das machen? Ich bin nicht so gut in javascript ...

Ich habe here von Hawkee

+0

Hiya, meinst du so etwas wie dieses lassen Sie mich wissen, wenn dies hilft, werde ich es als Antwort setzen http://jsfiddle.net/LHNky/3/, habe einen schönen! Prost. ** oder ** lass es mich wissen, wenn etwas anderes versuchen wird, dir zu helfen! –

+1

Was meinst du mit "Ich möchte es in einem versteckten Tag als ausgeben"? – codef0rmer

+0

@Tats_innit ja absolut! aber das Problem ist, wie bekomme ich den ausgewählten Vorschlag und gleichzeitig auf dem versteckten Tag lassen sagen: "@peterwateber hey!" im Textfeld und im versteckten Tag "@ [peterwateber] hey!" –

Antwort

4

Hiya Demo Arbeiten hier auf diesem Code versuchte, Blick: http://jsfiddle.net/67dxH/

Bereits gute Diskussion hatte oben wie Sie sagten Verhalten ist wie: value of the hidden tag as = @[C#] and the textarea as @C#

Jope das ist hilfreich Mann, lassen Sie mich wissen, wie es geht, Prost! :)

JQuery-Code

function split(val) { 
    return val.split(/@\s*/); 
} 

function extractLast(term) { 
    return split(term).pop(); 
} 

function getTags(term, callback) { 
    $.ajax({ 
     url: "http://api.stackoverflow.com/1.1/tags", 
     data: { 
      filter: term, 
      pagesize: 5 
     }, 
     type: "POST", 
     success: callback, 
     jsonp: "jsonp", 
     dataType: "jsonp" 
    });  
} 

$(document).ready(function() { 

    $("#tags") 
    // don't navigate away from the field on tab when selecting an item 
    .bind("keydown", function(event) { 
     if (event.keyCode === $.ui.keyCode.TAB && $(this).data("autocomplete").menu.active) { 

      event.preventDefault(); 
     } 
    }).autocomplete({ 
     source: function(request, response) { 
      if (request.term.indexOf("@") >= 0) { 
       $("#loading").show(); 
       getTags(extractLast(request.term), function(data) { 
        response($.map(data.tags, function(el) { 
         return { 
          value: el.name, 
          count: el.count 
         } 
        })); 
        $("#loading").hide();      
       }); 
      } 
     }, 
     focus: function() { 
      // prevent value inserted on focus 
      return false; 
     }, 
     select: function(event, ui) { 
      var terms = split(this.value); 
      // remove the current input 
      terms.pop(); 
      // add the selected item 
      ui.item.value = "@" + ui.item.value; 
      terms.push(ui.item.value); 
      // add placeholder to get the comma-and-space at the end 
      terms.push(""); 
      this.value = terms.join(""); 
      return false; 
     } 
    }).data("autocomplete")._renderItem = function(ul, item) { 
     return $("<li>") 
      .data("item.autocomplete", item) 
      .append("<a>@[" + item.label + "]&nbsp;<span class='count'>(" + item.count + ")</span></a>") 
      .appendTo(ul); 
    }; 
});​ 
+0

woo! Danke ich vergaß das _renderItem woohooo vielen Dank Prost! –

+0

+1 für dich, keine Sorge bruv, habe einen schönen! Prost. –

+0

hey @Tats_innit was ist, wenn ich so etwas möchte http://jsfiddle.net/peterwateber/gucPn/11/?Verwenden Sie jedoch jQuery Autocomplete. dieses benutzt Hawkees-Problem nur es hat Drop-down-up und down-Pfeil Schlüsselproblem. –