2013-03-27 1 views
1

en utilisant ce plugin https://github.com/aehlke/tag-it son très cool au fait.Tag il soumettre l'ID pas la valeur ou l'étiquette

problème

:

 <input type="hidden" name="tags" id="mySingleField" value="Apple, Orange" disabled="true"> 
     Tags:<br> 
     <ul id="mytags"></ul> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#mytags").tagit({ 
      singleField: true, 
      singleFieldNode: $('#mySingleField'), 
      allowSpaces: true, 
      minLength: 2, 
      removeConfirmation: true, 
      tagSource: function (request, response) { 
       //console.log("1"); 
       $.ajax({ 
        url: "../City/GetList", 
        data: { term: request.term }, 
        dataType: "json", 
        success: function (data) { 
         response($.map(data, function (item) { 
          return { 
           label: item.label + " (" + item.id + ")", 
           value: item.value 
          } 
         })); 
        } 
       }); 
      } 
     }); 
    }); 



</script> 

Lorsque balise sélectionne les valeurs qu'il ajoute des valeurs au champ caché au format CSV en valeur attr. je veux qu'il fasse l'ID au lieu que quelqu'un sache comment?

+0

peut-je demander pourquoi voulez-vous faire –

+0

je veux passer id pas les valeurs de retour au serveur –

+0

[Ligne # 238 du plug-in fourni] (https://github.com/aehlke/tag -it/blob/master/js/tag-it.js # L283) est l'endroit où la valeur est définie, si cela aide. – couzzi

Répondre

0
change the tag-it.js file 
comment from line 264 

         //that.createTag(that._cleanedInput()); 

         // The autocomplete doesn't close automatically when TAB is pressed. 
         // So let's ensure that it closes. 
         //that.tagInput.autocomplete('close'); 

around line 285 

       var autocompleteOptions = { 
        select: function(event, ui) { 
    that.createTag(ui.item);       

Create a new function 
assignedTagsData : function(){ 
     // Only to be used when singleField option is not seletced 
     var tags = []; 

     this.tagList.children('.tagit-choice').each(function() { 
       tags.push($(this).data('tag_item_data')); 
      }); 
     return tags; 

    } 



> that.createTag(ui.item); 



    // Create tag. 
     var tag = $('<li></li>') 
      .data('tag_item_data',item) //add this line 
      .addClass('tagit-choice ui-widget-content ui-state-default ui-corner-all') 
      .addClass(additionalClass) 
      .append(label); 
1

Un certain nombre de choses ici. Vous pouvez régler le délimiteur au lieu d'un fichier CSV à quoi que ce soit en définissant le paramètre en tant que tels dire à un trait de soulignement:

$("#mytags").tagit({ 
    ... 
    singleFieldDelimiter: '_', 
    ... 

Ensuite, vous pouvez modifier le fichier d'étiquette-it.js sur la ligne 197 pour dire utiliser l'attribut ID.

Change:

var tags = node.val().split(this.options.singleFieldDelimiter); 

Pour être

var tags = node.attr("id").split(this.options.singleFieldDelimiter); 

Alors disons que vous avez modifié le champ caché être:

<input type="hidden" name="tags" class="mySingleField" id="Apple_Orange_Banana" value="Apple_Orange" disabled="true"> 

Vous modifier le javascript en tant que tel pour obtenir la sortie désirée:

$(document).ready(function() { 
     $("#mytags").tagit({ 
      singleField: true, 
      singleFieldNode: $('.mySingleField'), 
      singleFieldDelimiter: '_', 
      allowSpaces: true, 
      minLength: 2, 
      removeConfirmation: true, 
      tagSource: function (request, response) { 
       //console.log("1"); 
       $.ajax({ 
        url: "../City/GetList", 
        data: { term: request.term }, 
        dataType: "json", 
        success: function (data) { 
         response($.map(data, function (item) { 
          return { 
           label: item.label + " (" + item.id + ")", 
           value: item.value 
          } 
         })); 
        } 
       }); 
      } 
     }); 
    }); 
+0

si j'ai l'élément avec (id, label, value) cela change-t-il l'ID de l'élément select et le place dans le champ value dans l'élément Input ou sélectionne-t-il la valeur de l'item idattr? Je veux le 1er –

+0

Cela va marquer la valeur de l'ID et faire un tag pour chaque valeur séparée par le trait de soulignement. Est-ce ce que vous cherchiez à faire? –

+0

ce que je cherche est si mes tags sont (id, lable, valeurs) (1, apple, apple) je veux voir . Sur la balise affichée je veux voir la valeur apple .... actuellement il et affiche apple .. –

Questions connexes