javascript - jquery autocomplete. tracking values instead of labels -


i have jquery autocomplete field want add multiple values in same input field. in example see here, http://jqueryui.com/demos/autocomplete/#multiple value , label same things work fine whats in select event. however, in case, when user chooses name, want input box show labels, want post values when submit form. try around it, added hidden field in form , have separate array gets value, problem when user backspaces out of value. still in array. ideas how fix that? or perhaps better solutions?

var friend_data = [{"label":"john doe","value":"12345"},{"label":"jane doe","value":"123456"}];  $( "#friends" )     // don't navigate away field on tab when selecting item     .bind( "keydown", function( event ) {         if ( event.keycode === $.ui.keycode.tab && $( ).data( "autocomplete" ).menu.active ) {             event.preventdefault();         }     }).autocomplete({         minlength: 0,         //source: friend_data,         source: function( request, response ) {             // delegate autocomplete, extract last term             response( $.ui.autocomplete.filter(                 friend_data, extractlast( request.term ) ) );         },         delay: 0,         autofocus: true,         focus: function(event, ui) {             return false;         },         select: function( event, ui ) {             var terms = split( this.value );              // remove current input             terms.pop();             // add selected item             terms.push( ui.item.label );             friend_id_list.push( ui.item.value );             console.log(friend_id_list);             // add placeholder comma-and-space @ end             terms.push( "" );             this.value = terms.join( ", " );             console.log(this.value);             return false;         }        })     .data( "autocomplete")._renderitem = function( ul, item ) {         var fb_pic_path = '<img src="http://graph.facebook.com/' + item.value + '/picture?type=square">' ;          return $( "<li></li>" )         .data( "item.autocomplete", item )         .append( "<a>" + fb_pic_path + item.label + "</a>" )         .appendto( ul );     }; 

a bit reluctant post this, b/c new javascript/jquery , cant possibly best way it, if new me , looking works, using keep things in sync.

$("#friends").keyup(function(event) {         var friend_label_count = this.value.split(",").length - 1;     var friend_value_count = friend_id_list.length;     if (friend_label_count < friend_value_count) {         friend_id_list.pop();         } }); 

Comments

Popular posts from this blog

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -

php - Controller/JToolBar not working in Joomla 2.5 -