Jquery campo oculto no Tabela
-
22-08-2019 - |
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>
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%>.