11
votes

JQuery: Vérifiez si la ligne de table contenant certaines valeurs existe déjà

J'ai un script jQuery qui ajoute une rangée à une table. En bref, l'utilisateur peut sélectionner une valeur dans un menu déroulant, puis entrer dans «x» quantité de mois et hits 'ajouter', qui ajoute la ligne à la table. Par exemple, la ligne suivante est annexée par l'utilisateur:

<tr>
  <td>Some Value</td>
  <td>2</td>
</tr>


0 commentaires

3 Réponses :


23
votes

Vous pourrez peut-être utiliser : contient () : xxx

- Exemple

Sachez, Cependant, que : contient () retournera l'élément si la chaîne donnée est assortie n'importe où dans le texte de l'élément.


4 commentaires

Travaillé comme une bombe, merci beaucoup en effet. Je ne suis pas trop préoccupé par les valeurs similaires car elles sont toutefois des valeurs prédéfinies de toute façon. Je suis simple ajouté la fonction suivante et tout a fonctionné génial: si ($ ($ ($ ('# tblspecialization td: contient (' + $ slabel + ')'). Longueur) {alerte ('une spécialisation du même type et des mois a déjà été entrée. '); retourner faux; } Gros à vous pour votre aide


1+ pour vous pour votre aide et votre temps et une réponse simple efficace


@WebFac: content de pouvoir aider :-)


+1 pour une solution agréable et courte, et pour m'apprécier quelque chose de nouveau :)



2
votes

Je vous suggère de détenir vos données dans certaines structures de données (un tableau (associatif) par exemple). Ainsi, vous vérifierez les données dans la structure plutôt que dans le DOM.


2 commentaires

J'aime beaucoup cette approche et je suis sûr que c'est une meilleure pratique, mais pour ce scénario, tout le code est structuré d'une certaine manière déjà, mais pas de meilleure manière, j'avais besoin d'une solution que je pouvais simplement "brancher" à la logique actuelle. Merci beaucoup pour votre guidage cependant! Très appréciée


1+ à vous pour votre aide et votre temps



2
votes

Pour le mettre court, le code suivant dans le click () code> gestionnaire devrait vous aider dans votre situation; Vous pouvez Voir l'ensemble du code en action :

$(function(){
    $("#btn").click(function(){
        var table = $("#tblspecializations");
        var firstTd = $("td:first", table);
        var secondTd = firstTd.next();

        if(firstTd.text() == $("#dropdown").val() && secondTd.text() == $("#num").val())
            alert("Error: You're trying to add the same entry");
    });
});


3 commentaires

Cela fonctionne également pour moi, mais j'ai trouvé la réponse d'Andy E pour être la solution la plus courte. Merci pour votre temps si! Cela ne va pas inaperçu.


1+ pour vous pour votre aide et votre temps


@webfac aucun problème; Vous êtes le bienvenu et merci pour la uppote.