2012-01-03 18 views
13

Estoy tratando de implementar autocompletar a través de jquery auto completar el complemento.Una simple autocompleta funciona para mí. No puedo lograr el autocompletar separado por comas.comma separado autocompletar con jquery autocompletar

Por favor, ayúdenme con dónde me estoy equivocando.

Mi código jQuery:

$(document).ready(function() { 
$.getJSON('/releases/new.json', function() {  
alert("inside getJson"); 
alert(data1); 
$('#release_tester_tokens').autocomplete({source:names,multiple: true}); 
}); 
}); 

Gracias, Ramya.

+0

he conseguido esto dando el mismo código en una función y decir que es de mi archivo de vista – ramya

Respuesta

13

Ver si esto walk-through ayuda. Incluye el siguiente código que permite al usuario introducir varias términos de búsqueda separados por comas:

$("#<%= txtMultipleName.ClientID %>").autocomplete({ 
    source: function (request, response) { 
     $.getJSON("AutoComplete.ashx", { 
      term: extractLast(request.term) 
     }, response); 
    }, 
    search: function() { 
     // custom minLength 
     var term = extractLast(this.value); 
     if (term.length < 1) { 
      return false; 
     } 
    }, 
    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 
     terms.push(ui.item.value); 
     // add placeholder to get the comma-and-space at the end 
     terms.push(""); 
     this.value = terms.join(", "); 
     return false; 
    } 
}); 
function split(val) { 
    return val.split(/,\s*/); 
} 
function extractLast(term) { 
    return split(term).pop(); 
} 

También hay un montón de información en la página jQuery UI autocomplete.

+0

Sería mejor si u dan a vivir Ejemplo de enlace de su código :) –

+1

@ Md.SharifulIslam https: // jqueryui.com/autocomplete/#multiple – ComputerLocus

4

En su ejemplo, está accediendo a variables que aún no están definidas y nunca a ninguno de los resultados de su llamada getJSON. En JSON, una lista separada por comas es en realidad una matriz (si está en corchetes []). Si es una cadena simplemente use String split para crear la matriz fuente.

$(document).ready(function() { 
    $.getJSON('/releases/new.json', function(data) { 
     $('#release_tester_tokens').autocomplete({ 
      source: data.list, 
      multiple: true 
     }); 
    }); 
}); 
+0

Hola Daff, muchas gracias por responderme. Estoy pasando la variable de origen a través del código de vista:: javascript names = # {Release.user_names.to_json} – ramya

+0

No haga cosas así en sus vistas, intente mantener todo en el archivo JS. ¿Estás usando un renderizador de vista de JavaScript? – Daff

+0

Hola Daff, tengo el visualizador de javascript view en mi controlador como @@ user_names || = User.all.map (&: name) . responder_ a hacer | formato | format.html # new.html.erb format.xml {render: xml => @release} { format.json render: json => {: datos => @@ USER_NAMES}} finales Desde didn' t trabajo para mí fui por el último método. – ramya