Frage

Ich frage mich, ob jemand eine Möglichkeit, wußte ein verstecktes Feld zuzugreifen (von Client-ID) innerhalb einer Tabellenzeile mit Jquery.

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

Ich finde, dass die oben genannten Arbeiten für eine Zeile, die nur einen Eingang hat, aber ich brauche Hilfe einen Weg herauszufinden, den Wert der Eingänge Namen zu erhalten.

Hier ist das Beispiel einer Tabellenzeile. Wie würde ich auf die beiden Felder durch ihre ID?

<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>
War es hilfreich?

Lösung

Mit der Art und Weise Sie es eingerichtet haben gerade jetzt, Sie könnten dies tun:

$('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

Mit diesem Sie müssen nicht über die Eingabe des ClientID sorgen.

Andere Tipps

ich normalerweise eine positive Lookup verwenden, um die ID zu entsprechen, ist diese Methode vermeidet die Client-ID erforderlich

(id enthält foo) . $ (This) .find ( "input [id * = 'foo']") val ();

Man könnte es wie folgt tun:

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

durch diesen ausgezeichneten Artikel lesen 'Wie zu bekommen, was Sie wollen mit jQuery ‘von Benjamin Sterling.

Warum Sie nicht einfach verwenden diese:

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

<asp:HiddenField id="foo"> erzeugt ein <input type="hidden" id="foo"/> nicht wahr? Warum gehst du nicht einfach tun

$("#foo").val()

Ich glaube, Sie müssen erklären, was Sie versuchen, ein bisschen besser zu machen. Wenn Sie feststellen, dass

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

... funktioniert nur, wenn Sie einen Eingang haben, vielleicht, was Sie suchen, ist dies:

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

Aber wie es steht, Ihre Frage ist nicht ganz klar. Versuchen Sie die Bearbeitung Ihrer Frage und nehmen Sie sich Zeit, genau zu erklären, was Sie wollen.

keine Antwort, aber ich war aus einer Tabellenzelle beim Ziehen eines versteckten Feld Wert unglaubliche Schwierigkeiten habe (unter Verwendung von auf der Tabelle natürlich tablesorter), so dass ich bin so glücklich, diese Codezeile gefunden zu haben:

$ (this) .find ( ": Eingabe"). Val ();

und es funktioniert wunderbar.

Ich benutze auch die „.live“ -Funktion, so dass es funktioniert auch auf großen Tischen.

DANKE !!!

HLR

Ich habe drei Registerkarten mit jeweils einer Submit-Button verursacht Post Rücken. Nach dem Click-Ereignisse für die Schaltfläche einreichen, mag ich die aktuellen Registerkarte beharren.

Schritt 1:

ein asp Hinzugefügt: Hidden in den Registerkarten div ( 'Tabs' div hält alle drei divs, die den Inhalt für meine Tabs).

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

Schritt 2:

den Wert von Aktualisiert sel_tab mit dem Click-Ereignisse der einzelnen Tasten, die einen Beitrag zurück führen.

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";
}

Schritt 3. In meinem js Datei Ich habe den folgenden Code

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

Dies funktioniert auch, wenn Sie Master-Seiten verwenden (ich bin). Brauchen nicht die <% = foo.ClientID%> Teil.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top