J'ai une table, où l'utilisateur peut sélectionner des échantillons. Dans chaque ligne il y a un champ caché, qui contient un identifiant unique. Je voudrais obtenir la valeur du champ caché de la ligne sélectionnée (cochée) dans un tableau, afin qu'elle puisse être transmise pour traitement.
Jusqu'à présent, ce que j'ai:Sélectionnez une valeur de champs cachés dans une table
var data = Array();
$("#nonScheduledSamples tr").each(function (i) {
if ($(this).prop("checked")) {
data[i] = $(this).find("#item_SampleId").val();
}
});
Le tableau est généré par une vue partielle MVC:
@foreach (var item in Model.SampleInfo)
{
<tr>
@Html.HiddenFor(i=>item.SampleId)
<td class="text-center">@Html.CheckBoxFor(i=>i.Selected)</td>
</tr>
}
Ce retourne un tableau vide pour moi. Toute aide vraiment appréciée.
Mise à jour # 1:
J'ai modifié le code, de sorte que le HTML ressemble à ceci:
<input data-sampleid="60815" data-val="true" data-val-required="The Selected field is required." id="SampleIdSelect" name="SampleInfo[0].Selected" type="checkbox" value="true">
et jquery:
$("#nonScheduledSamples tr input").each(function() {
if ($(this).prop("checked")) {
data.push($("#SampleIdSelect").data("sampleid"));
}
});
À l'heure actuelle, les données array est rempli avec la même valeur que data-sampleid mais avec des temps égaux, autant de case à cocher est cochée. Qu'est-ce que je fais mal?
Merci d'avance.
Le html est également partagé –
La table est générée par une vue partielle MVC. – Paxsentry
donc html sera utile pour voir ce qu'il a généré :) Très probablement votre tableau SampleInfo est vide et donc aucune ligne n'est générée, vous pouvez également le vérifier avec le débogueur – mikus