JQuery найти вход: скрытая ошибка в сафари - PullRequest
1 голос
/ 02 декабря 2010

Я пытаюсь реализовать функцию, при которой пользователь может щелкнуть строку, т. Е. <tr>, и она перейдет на определенный URL.

Вот мой код HTML и Jquery:

                <tbody>

                    <tr>
                        <input class="threadid_c" id="threadID" name="threadID" type="hidden" value="MzAwMTYwLDMwMDM3Miw=" />
                        <td>
                            ...
        </tr>
                    <tr>
                        <input class="threadid_c" id="threadID" name="threadID" type="hidden" value="MzAwMzcyLDMwMDM4MCw=" />
                        <td>
            ....

        $('#datatable tr').click(function() {
            var x = $(this).find("input:hidden");
            var url = "/User/Ping/" + x.val();
            location.href = url;
        });

Это прекрасно работает в Chrome, Firefox и IE. Но в Safari x.val() возвращает undefined.

Я посмотрел в консоли JavaScript Safari, я вижу это сообщение:

<input> is not allowed inside <tr>. Inserting <input> before the <table> instead.

Не уверен, связано ли это с проблемой. Есть предложения?

1 Ответ

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

Вы не можете иметь <input> в качестве прямого <tr> ребенка, как он говорит, просто заправьте его внутрь первого <td> вместо этого, например так:

<tr>
   <td>
   <input class="threadid_c" name="threadID" type="hidden" value="MzAwMzcyLDMwMDM4MCw=" />
   ....

Также удалитеid атрибут, так как он повторяется ... они должны быть уникальными на странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...