Jquery скрытое поле в таблице - PullRequest
1 голос
/ 31 марта 2009

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

Ответы [ 7 ]

3 голосов
/ 10 ноября 2010

Я обычно использую положительный поиск для совпадения с идентификатором, этот метод позволяет избежать запроса идентификатора клиента

(идентификатор содержит foo) . $ (Это) .find ( "вход [ID = 'Foo']") Val ();

2 голосов
/ 26 августа 2009

Почему бы вам просто не использовать это:

jQuery("#<%=hdnfld_Id.ClientID%>")
2 голосов
/ 31 марта 2009

С тем, как вы настроили его прямо сейчас, вы можете сделать это:

$('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 входа.

2 голосов
/ 31 марта 2009

Вы можете сделать это так:

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

Прочитайте эту превосходную статью 'Как получить то, что вы хотите, используя jQuery ' Бенджамина Стерлинга.

1 голос
/ 01 февраля 2011

У меня есть три вкладки, каждая из которых имеет кнопку «Отправить», вызывающую обратную запись. После события click для кнопки отправки я хочу, чтобы текущая вкладка сохранялась.

Шаг 1.

Добавлен asp: HiddenField внутри div вкладок (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%>.

1 голос
/ 22 декабря 2010

Не ответ, но у меня были невероятные трудности с извлечением скрытого значения поля из ячейки таблицы (конечно, с использованием tableorter для этой таблицы), поэтому я так счастлив, что нашел эту строку кода:

$ (это) .find ( ": вход"). Вал ();

и это прекрасно работает.

Я также использую функцию ".live", поэтому она работает даже на огромных столах.

СПАСИБО !!!

HLR

1 голос
/ 31 марта 2009

<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());
}

Но в вашем нынешнем виде ваш вопрос не очень ясен. Попробуйте отредактировать свой вопрос и не торопитесь, чтобы объяснить, что именно вы хотите.

...