Скрытое поле Jquery в таблице
-
22-08-2019 - |
Вопрос
Мне было интересно, знает ли кто-нибудь о способе доступа к скрытому полю (по идентификатору клиента) в строке таблицы с помощью jquery.
$("#tblOne").find("tr").click(function() {
var worker = $(this).find(":input").val();
});
Я нахожу, что приведенное выше работает для строки, которая имеет только один входной сигнал, но мне нужна некоторая помощь в определении способа получения значения по имени входных данных.
Вот пример строки таблицы.Как мне получить доступ к этим двум полям по их идентификаторам?
<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>
Решение
С учетом того, как вы это настроили прямо сейчас, вы могли бы сделать это:
$('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
Используя это, вам не нужно беспокоиться о ClientID входных данных.
Другие советы
Обычно я использую положительный поиск для сопоставления идентификатора, этот метод позволяет избежать требования к идентификатору клиента
(идентификатор содержит foo) $(this).find("ввод[id*='foo']").val();
Вы могли бы сделать это вот так:
$("#tblOne").find("tr").click(function() {
var election = $(this).find("td").eq(0).html();
var worker = $(this).find('input[name=theName]').val();
});
Прочтите эту превосходную статью 'Как получить то, что вы хотите, используя jQuery"автор: Бенджамин Стерлинг.
Почему бы вам просто не использовать это:
jQuery("#<%=hdnfld_Id.ClientID%>")
<asp:HiddenField id="foo">
генерирует <input type="hidden" id="foo"/>
не так ли?Почему бы тебе просто не сделать
$("#foo").val()
?
Я думаю, вам нужно немного лучше объяснить, что вы пытаетесь сделать.Если вы обнаружите, что
$(this).find(":input").val();
...работает только тогда, когда у вас есть один вход, возможно, то, что вы ищете, это:
$(this).find(":input").each(function() {
// Prints the value of each input.
alert($(this).val());
}
Но в нынешнем виде ваш вопрос не очень ясен.Попробуйте отредактировать свой вопрос и не торопитесь объяснять, чего именно вы хотите.
Не ответ, но у меня возникли невероятные трудности с извлечением значения скрытого поля из ячейки таблицы (используя tablesorter в этой таблице, конечно), поэтому я так рад, что нашел эту строку кода:
$(this).find(":ввод").val();
и это работает чудесно.
Я также использую функцию ".live", так что она работает даже на огромных таблицах.
Спасибо!!!
HLR ( ХЛР )
У меня есть три вкладки, каждая с кнопкой Отправки, вызывающей возврат публикации.После события щелчка для кнопки отправки я хочу, чтобы текущая вкладка сохранялась.
Шаг 1.
Добавлено жерех:Скрытое поле внутри вкладки div ('tabs' div содержит все три раздела, в которых есть содержимое для моих вкладок).
<asp:HiddenField ID="sel_tab" Value="" runat="server" />
Шаг 2.
Обновлено значение sel_tab ( таблица выбора ) с событием нажатия каждой кнопки, которое вызывает ответную публикацию.
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";
}
Шаг 3.В моем .js файл У меня есть следующий код
// Tabs
$(document).ready(function() {
var iSelectedTab = $(this).find("input[id*='sel_tab']").val();
if (iSelectedTab == null)
iSelectedTab = 0;
$('[id$=tabs]').tabs({ selected: iSelectedTab });
});
Это работает, даже если вы используете Мастер-страницы (я использую).Не нуждаюсь в <%=foo.ClientID%> часть.