2016-04-25 3 views
1

Hier finden Sie meinen select2 Drop-Down:Wie überprüft man, ob der Wert in einem select2-Dropdown mit Tags vorhanden ist: true mit jquery?

<select class="skill-select form-control" name="name" required="true" id="skill-name"> 
        <option id="xxx"></option> <!-- Needed for select2 --> 

        <option value="33">good</option> 

        <option value="32">sdw</option> 

        <option value="18">PM</option> 

        <option value="17">TL</option> 

        <option value="ddddd" data-select2-tag="true">ddddd</option> 
        <option value="11" data-select2-tag="true">11</option> 

       </select> 

Javascript:

$(".skill-select").select2({ 
    placeholder: 'Skill Name', 
    tags: true 
    }); 

Wie kann ich die Optionen in meinem Dropdown vorhanden Zugriff ohne Optionen mit Daten-select2-tag = "true".

Im obigen Beispiel möchte ich nicht die Optionen ‚ddddd‘ and'11' für den Zugriff auf die Daten-select2-tag = ‚true‘ haben ??

Derzeit bin ich mit dem folgenden Java-Skript, aber das schließt nicht aus, ‚ddddd‘ Optionen and'11' , die Daten-select2-tag = ‚true‘ haben;

var opt = $('#skill-name :selected').text(); 
    var valid; 
    var length = $('#skill-name option').filter(function() { 
      return $(this).text() === opt; 
     }).length; 
     if(length != 0){ 

     valid = false; 
     return; 
     } else { 
     valid = true; 
     } 
+1

Haben Sie versucht, das Attribut nicht gleich Selector? https://api.jquery.com/attribute-not-equal-selector/ –

+0

Danke, es hat funktioniert – user2077648

Antwort

1

Das folgende Skript für mich gearbeitet:

addSkill = function() { 
    var opt = $('#skill-name :selected').text(); 
    var length = $('#skill-name option').not("[data-select2-tag='true']").filter(function() { 
        return $(this).text() === opt; 
       }).length; 
    if(length != 0){ 

    valid = false; 
    return; 
    } else { 
    valid = true; 
    }