2016-01-31 1 views
-2

J'ai sélectionné l'entrée d'étiquette et je peux choisir plusieurs éléments en utilisant MagicSuggest plugin.Ajouter une virgule après chaque mot en JavaScript

Le problème est que la valeur obtenue après le choix est une chaîne séparée sans virgule.

Comme:

MVCPHPASP.Net

Je souhaite modifier à:

MVC, PHP, ASP.Net

Le résultat que je reçois lorsque je choisis plusieurs éléments:

La chaîne que je reçois quand j'alerte:

Alors, comment puis-je faire?

+0

Vous ne sont pas, sauf si vous avez très mots spécifiques que vous recherchez. Presque chaque composant d'étiquette offre une certaine forme de sérialisation qui le fera pour vous. Puisque vous ne dites pas lequel vous utilisez, il n'y a aucun moyen de savoir comment celui-ci le fait. Il est plus probable que vous saisissiez simplement un tableau brut et n'utilisiez pas 'join'. –

+4

Il serait très utile si vous pouviez nous montrer html et javascript par rapport à cette question, que vous utilisez. –

+0

[ici] (http://prntscr.com/9x6j3l) c'est mon fichier js pour obtenir la chaîne à l'intérieur de cette zone de texte [ici] (http://prntscr.com/9x6jfo) c'est mon fichier js en utilisant la magie suggèrent [ Ici] (http://prntscr.com/9x6jqs) c'est mon fichier html pour afficher la magie suggérer –

Répondre

3

La bonne façon est d'obtenir les données en utilisant l'API du plugin, pas l'analyse bizarre.

Selon le docs vous pouvez utiliser la fonction .getSelection() pour obtenir les éléments sélectionnés.

var ms = $('#ms-getValue').magicSuggest({ 
 
    data: [ 
 
    { 
 
     id: 1, 
 
     name: 'Paris' 
 
    }, 
 
    { 
 
     id: 2, 
 
     name: 'New York' 
 
    }, 
 
    { 
 
     id: 3, 
 
     name: 'Gotham' 
 
    } 
 
    ] 
 
}); 
 

 
function getValues() { 
 
    // array 
 
    var selected = ms.getSelection(); 
 
    alert(selected.map(function(item) { 
 
    return item.name; 
 
    }).join(',')); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<link href="http://nicolasbize.com/magicsuggest/lib/magicsuggest/magicsuggest.css" rel="stylesheet" /> 
 
<script src="http://nicolasbize.com/magicsuggest/lib/magicsuggest/magicsuggest.js"></script> 
 

 
<div id="ms-getValue"></div> 
 
<button onclick="getValues()">Get Values</button>

Mise à jour Le résultat sont un Array. Donc, pour obtenir le premier (par exemple) objet sélectionné vous: selected[0].name

Mise à jour 2 Pour afficher toutes les valeurs sélectionnées separes par des guillemets:

selected.map(function(item) { 
    return item.name; 
}).join(',') 
+0

[ici] (http://prntscr.com/9x7brr) c'est le résultat que je reçois alors comment puis-je obtenir le nom –

+0

J'ai été mis à jour ma réponse .. –

+0

Alors, comment nous peut obtenir l'index actuel si je choisis plus d'un élément –