2017-04-04 4 views
0

Dans un tableau, comment faire une boucle dans tous les champs dropdowns text & id dans une table et les enregistrer dans un tableau. Alors que je peux désactiver les options sélectionnées précédemmentDésactiver l'option de liste déroulante précédemment sélectionnée, vérifier à la fois la valeur text & id

Une fois une option est sélectionnée, je ne veux pas qu'il soit disponible à nouveau. Comment vérifier le texte sélectionné précédemment options sélectionnées dans la table définir cette option pour désactivé sur tous les autres menus déroulants dans la page.

(cette question est différente des autres SO des questions depuis sa désactivation après avoir vérifié les deux selected text & selected value l'intérieur d'une table et doit cibler le menu déroulant dans la colonne spécifiée)

var allSelectedValuesArray = array(); 
allSelectedValuesArray.push($("#tblVersions .Model option:selected").text()); 

var rows = $("body tr",$("#tblVersions")).map(function() { 
return [$("td:eq(0) input:checkbox:checked",this).map(function() { 
    return this.innerHTML;  
}).get()]; 
}).get(); 

<table id="tblversions"> 
<tbody id="body"> 
    <tr class="rowcss"> 
    <td> 
    <select class="Manufacturer"> 
     <option value="1">Toyota </option> 
     <option value="2">Honda</option> 
     <option value="3">BMW</option> 
    </select> 
    </td> 
    <td> 
    <select class="Model"> 
    <!-- If user selects Honda my Ajax populates Honda Models/Cars like below--> 
     <option value="1">Accord</option> 
     <option value="2">Toyota 2</option> 
     <option value="3">Honda 3</option>   
    </select> 
    </td> 
    </tr> 
    <tr class="rowcss"> 
    <td> 
    <select class="Manufacturer"> 
     <option value="1">Toyota </option> 
     <option value="2">Honda</option> 
     <option value="3">BMW</option> 
    </select> 
    </td> 
    <td> 
    <select class="Model"> 
    <!-- If user selects BMW my Ajax populates BMW models Cars like below--> 
     <option value="1">X5 Suv</option> 
     <option value="2">318 series Cheap</option> 
     <option value="3">540i too expensive!</option>   
    </select> 
    </td> 
    </tr>  
</tbody> 
</table> 
+0

Votre JS ne semble pas lié à votre HTML (différentes classes et ID, et le HTML n'a pas d'éléments d'entrée). Pouvez-vous s'il vous plaît [modifier] votre question pour donner un exemple de "lorsque l'utilisateur sélectionne * x * à partir de dropdown * y *, ce qui suit devrait se produire ..."? – nnnnnn

+0

question n'est pas si clair – JYoThI

+0

@nnnnnn J'ai édité la question - Je veux désactiver toutes les autres options sélectionnées, comment ferais-je cela? * Je veux comparer à la fois «texte» et «valeur» pour être le même *. Il s'agit d'une liste déroulante en cascade - donc, dans certains cas * s'ils choisissent un autre fabricant, il pourrait y avoir un chevauchement d'ID de modèle * (mais un identifiant de fabricant différent) *, par exemple. 'Honda pourrait avoir la valeur 3 = Accord', tandis que sous un diff fabrique' Toyota Value 3 = Camry', donc je dois m'assurer que je vérifie le texte et la valeur - puis désactiver les options – aggie

Répondre

1

Je n'ai pas compris la deuxième partie de votre question, mais si vous voulez obtenir du texte et des valeurs pour toutes les listes déroulantes, vous pouvez faire quelque chose comme ça.

// Called when any of the dropdowns change 
("#tblversions").change(function() { 
    var allSelectedValuesArray = []; 

    // Search for all selects in the #tblversions 
    $("#tblversions select option:selected").each(function() { 
     // for each one, push it into the array 
     allSelectedValuesArray.push({text:$(this).text(), value:this.value}); 
    }); 
}); 

Cela crée un tableau d'objets dans le format {texte: « someText », valeur: « somevalue »} pour chacun des menus déroulants dans la table.

+0

salut, merci pour cela j'ai édité ma question., je veux désactiver toutes les autres options sélectionnées, comment je le ferais? * Je veux comparer le texte et la valeur pour être les mêmes * Dans certains cas, s'ils choisissent un autre fabricant, il pourrait y avoir un ID qui se chevauche, par exemple. Honda pourrait avoir la valeur 3 = Accord, mais Toyota Value 3 = Camry, donc je dois m'assurer que je vérifie à la fois le texte et la valeur – aggie