Question

Je me demandais si quelqu'un connaissait un moyen d'accéder à un champ caché (par ID client) dans une ligne de table en utilisant jquery.

$("#tblOne").find("tr").click(function() {
            var worker = $(this).find(":input").val();
        });

Je trouve que les travaux ci-dessus pour une ligne qui a une seule entrée, mais j'ai besoin d'aide pour trouver un moyen d'obtenir la valeur du nom des entrées.

Voici l'exemple d'une ligne de table. Comment puis-je accéder aux deux champs par leurs ids?

<table id="tblOne">
<tr>
<td>
    <asp:HiddenField id="hdnfld_Id" Text='<% Eval("ID") %>'></asp:HiddenField>
</td>
<td>
    <asp:HiddenField id="hdnfld_Id2" Text='<% Eval("ID2") %>'></asp:HiddenField>
</td>
</tr> 
</table>
Était-ce utile?

La solution

Avec la façon dont vous avez la configuration en ce moment, vous pouvez faire ceci:

$('tr td', '#tblOne').eq(0).find(':input').val(); // find input in 1st TD
$('tr td', '#tblOne').eq(1).find(':input').val(); // find input in 2nd TD

L'utilisation de ce que vous n'avez pas à vous soucier de l'entrée de ClientID.

Autres conseils

J'utilise normalement une recherche positive correspondre à l'ID, cette méthode évite nécessitant l'identifiant client

(id contient foo) . $ (This) .Find ( "entrée [id * = 'foo']") val ();

Vous pouvez le faire comme ceci:

    $("#tblOne").find("tr").click(function() {
        var election = $(this).find("td").eq(0).html();
        var worker = $(this).find('input[name=theName]').val();
    });

Lisez cet excellent article 'Comment obtenir ce que vous voulez en utilisant jQuery » par Benjamin Sterling.

Pourquoi ne pas utiliser simplement ceci:

jQuery("#<%=hdnfld_Id.ClientID%>")

<asp:HiddenField id="foo"> génère un <input type="hidden" id="foo"/> il ne fonctionne pas? Pourquoi ne faites-vous pas juste

$("#foo").val()

Je pense que vous devez expliquer ce que vous essayez de faire un peu mieux. Si vous trouvez que

$(this).find(":input").val();

... ne fonctionne que lorsque vous avez une entrée, peut-être ce que vous cherchez est le suivant:

$(this).find(":input").each(function() {
  // Prints the value of each input.
  alert($(this).val());
}

Mais tel qu'il est, votre question n'est pas très claire. Essayez d'éditer votre question et prenez votre temps pour expliquer exactement ce que vous voulez.

Pas une réponse, mais j'avais une incroyable difficulté à tirer une valeur de champ caché à l'intérieur d'une cellule de table (en utilisant tablesorter sur cette table bien sûr), donc je suis si heureux d'avoir trouvé cette ligne de code:

$ (this) .Find ( ": entrée"). Val ();

et il fonctionne à merveille.

Je l'utilise aussi la fonction « .live », il fonctionne même sur les tables énormes.

MERCI !!!

HLR

J'ai trois onglets chacun avec un bouton Soumettre faisant le dos de poste. Après l'événement, cliquez sur le bouton pour envoyer, je veux l'onglet en cours de persister.

Étape 1.

Ajout d'une asp: HiddenField dans les onglets div (la div 'onglets tient tous les trois divs qui ont le contenu de mes onglets).

<asp:HiddenField ID="sel_tab" Value="" runat="server" />

Étape 2.

Mise à jour la valeur de sel_tab avec l'événement de clic de chaque bouton qui provoque un poste de retour.

protected void cmdSaveDailyMeasure_Click(object sender, EventArgs e)
{
    sel_tab.Value = "0";
}
protected void cmdSaveWeeklyMeasure_Click(object sender, EventArgs e)
{
    sel_tab.Value = "1";
}
protected void cmdSaveMonthlyMeasure_Click(object sender, EventArgs e)
{
    sel_tab.Value = "2";
}

Étape 3. Dans mon .js fichier je le code suivant

// Tabs
$(document).ready(function() {
    var iSelectedTab = $(this).find("input[id*='sel_tab']").val();
    if (iSelectedTab == null)
        iSelectedTab = 0;    
    $('[id$=tabs]').tabs({ selected: iSelectedTab });
});

Cela fonctionne même si vous utilisez des pages maître (je suis). Ne pas besoin de la partie <% = foo.ClientID%>.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top