Скрытые элементы на вкладках jquery не видны - PullRequest
1 голос
/ 15 ноября 2010

Я использую виджет вкладок jquery и заполняю каждую панель вкладок содержимым с другой страницы aspx. Выглядит так:

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<div id="tabs">
  <ul>
    <li><%: Html.ActionLink("PENDING", "PendingList", "Admin")%></li>
    <li><%: Html.ActionLink("APPROVED", "ApprovedList", "Admin")%></li>
    <li><%: Html.ActionLink("DENIED/CANCELED", "CanceledList", "Admin")%></li>
  </ul>
</div>

Страница, вставляемая как контент, выглядит следующим образом:

<table cellpadding="2" cellspacing="0" border="1">
<thead>
<tr>
    <td>Event name</td><td>Private</td><td>Location</td><td>Start date</td>
    <td>Duration</td><td>Asset</td><td>Contact name</td><td>Email</td><td>Phone</td>
</tr>
</thead>
  <tbody>
    <tr>
      <td>Some event Name<input type="hidden" id="bookingId" value="1"></td>
      <td>Yes</td>
      <td>...</td>
      ...
    </tr>
 </tbody>
</table>

На родительской странице, где размещен виджет вкладки, я пытаюсь прочитать значения из тела таблицы elemnt.

$(document).ready(function () {

 function initializeCanceledTab(tabPanel/**/) {
        var tabRows = $(tabPanel).find("table tr");

        tabRows.each(function (index, domEl) {
            var id = $(this).find("input:hidden").val();
            or
            var id = $(this).find("#bookingId:hidden").val();
            or 
            var id = $(this).find("input:has[type='hidden']").val();
        });
 });

Я могу прочитать все значения, кроме значения в скрытом поле. $ (this) является элементом tr. Проверка его (innerHTML) показала, что там нет скрытого ввода. Но когда страница отображается, Firebug и инструмент разработки IE показывают скрытый ввод. Кто-нибудь встречал эту проблему? Буду очень признателен, если кто-то может помочь. Спасибо.

1 Ответ

0 голосов
/ 24 февраля 2011

Не знаю, если у вас все еще есть проблемы с этим, но это должно работать, если контент загружен правильно:

var id = $(this).find("input[type='hidden']").val();

: скрытый - это не то же самое, что: текст или: кнопка - http://api.jquery.com/hidden-selector/

...