Pregunta

Me preguntaba si alguien sabía de una manera de acceder a un campo oculto (por ID de cliente) dentro de una fila de la tabla usando jQuery.

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

Me parece que las obras anteriores para una fila que tiene una sola entrada, pero necesito un poco de ayuda averiguar una forma de obtener el valor por el nombre de entradas.

Aquí está el ejemplo de una fila de la tabla. ¿Cómo iba a acceder a los dos campos por sus identificadores?

<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>
¿Fue útil?

Solución

Con la forma en que lo tienes configuración en este momento, usted puede hacer esto:

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

El uso de este usted no tiene que preocuparse por ClientID de la entrada.

Otros consejos

Normalmente utilizo una búsqueda positiva para que coincida con el ello, este método evita que requiere el ID de cliente

(id contiene foo) . $ (This) .find ( "entrada [id * = 'foo']") val ();

Se podía hacerlo de esta manera:

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

Leer a través de este excelente artículo 'Cómo conseguir lo que quieres usando jQuery ' por Benjamin Sterling.

¿Por qué no sólo tiene que utilizar esto:

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

<asp:HiddenField id="foo"> genera una <input type="hidden" id="foo"/> no lo hace? ¿Por qué no acaba de hacer

$("#foo").val()

Creo que es necesario para explicar lo que estamos tratando de hacer un poco mejor. Si usted encuentra que

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

... sólo funciona cuando se tiene una entrada, tal vez lo que estás buscando es la siguiente:

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

Sin embargo, tal y como está, su pregunta no es muy clara. Pruebe a editar su pregunta y tomar su tiempo para explicar exactamente lo que quiere.

No es una respuesta, pero yo estaba teniendo dificultad increíble en tirar de un valor de campo oculto dentro de una celda de la tabla (utilizando tablesorter en esa tabla, por supuesto), así que estoy muy feliz de haber encontrado esta línea de código:

$ (this) .find ( ": de entrada"). Val ();

y funciona de maravilla.

También utilizo la función ".live", por lo que funciona incluso en grandes mesas.

GRACIAS !!!

HLR

Tengo tres pestañas, cada una con un botón Enviar causando espaldas de correos. Después del evento Click para el botón de enviar, quiero que la pestaña actual persista.

Paso 1.

Se ha añadido un asp: HiddenField en el interior de las pestañas (div div 'pestañas' tiene todas las tres divs que tienen el contenido de mis pestañas).

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

Paso 2.

Se ha actualizado el valor de sel_tab con el evento Click de cada botón que hace que un palo.

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

Paso 3. En mi .js archivo que tengo el siguiente código

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

Esto funciona incluso si está utilizando páginas maestras (soy). No necesita la parte <% =% foo.ClientID>.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top