Pergunta

Eu queria saber se alguém sabia de uma maneira de acessar um campo escondido (por ID de cliente) dentro de uma linha de tabela usando jQuery.

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

Eu acho que as obras acima para uma linha que tem apenas uma entrada, mas eu preciso de alguma ajuda para descobrir uma maneira de obter o valor pelo nome insumos.

Aqui está o exemplo de uma linha da tabela. Como eu poderia acessar os dois campos, da sua 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>
Foi útil?

Solução

Com a forma como você tem configuração agora, você poderia fazer isso:

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

Usando isso, você não precisa se preocupar com ClientID da entrada.

Outras dicas

Eu normalmente uso uma pesquisa positiva para coincidir com o id, Este método evita que requerem o ID do cliente

(id contém foo) $ (This) .find ( "input [id * = 'foo']") val (.);

Você poderia fazê-lo como este:

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

Leia através deste excelente artigo 'Como obter o que deseja usando jQuery ' por Benjamin Sterling.

Por que você não simplesmente usar o seguinte:

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

<asp:HiddenField id="foo"> gera um <input type="hidden" id="foo"/> não é? Por que você não apenas fazer

$("#foo").val()

?

Eu acho que você precisa para explicar o que você está tentando fazer um pouco melhor. Se você achar que

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

... só funciona quando você tem uma entrada, talvez o que você está procurando é a seguinte:

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

Mas tal como está, a sua pergunta não é muito clara. Tente editar a sua pergunta e tomar o seu tempo para explicar exatamente o que você quer.

Não é uma resposta, mas eu estava tendo dificuldade incrível em puxar um valor de campo escondida dentro de uma célula da tabela (usando tablesorter em que a tabela é claro), por isso estou tão feliz por ter encontrado esta linha de código:

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

e ele funciona maravilhosamente.

Eu também usar a função ".Live", por isso funciona mesmo em grandes mesas.

OBRIGADO !!!

HLR

Eu tenho três guias, cada uma com um botão Enviar causando costas correios. Após o evento clique do botão enviar, eu quero a guia atual persistir.

Passo 1.

Adicionado um asp: HiddenField nas guias div (div 'guias' contém todos os três divs que têm o conteúdo para os meus guias).

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

Passo 2.

Atualizado o valor de sel_tab com o evento de clique de cada botão que faz com que um posto de volta.

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

Passo 3. Na minha .js arquivo Eu tenho o seguinte 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 });
});

Isso funciona mesmo se você estiver usando páginas mestras (Eu sou). Não precisa a parte <% = foo.ClientID%>.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top