Вопрос

Мне было интересно, знает ли кто-нибудь о способе доступа к скрытому полю (по идентификатору клиента) в строке таблицы с помощью 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%> часть.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top