Не удается получить значение скрытого поля ввода в таблице с помощью Jquery.Только в режиме совместимости с IE9 - PullRequest
1 голос
/ 08 сентября 2011

У меня возникают некоторые проблемы, когда я пытаюсь проанализировать значение в вызове jquery ajax (1.4.4 и 1.6.2) на моем веб-сайте asp.net mvc.Значение находится в поле ввода в первом тд таблицы.При нажатии кнопки в том же тд запускается jquery, отправляющий идентификатор (GUID) на сервер.

$.ajax({
                url: '/VMSW.FIS.WebUI/BetalingsAanvragen/BetalingsAanvraag/OndertekenBetalingsAanvraag',
                type: 'POST',
                dataType: "json",
                data: {
                    betalingsAanvraagId: $('.datatable tbody tr:nth-child(' + options.selectedRow + ') #betalingsaanvraagid').val()
                },
                success: options.success,
                error: function(msg){$('.error').show();}
            });

Теперь этот код отлично работает в chrome и ie9.Но когда включен режим совместимости с ie9, id (betalingsAanvraagId) неожиданно возвращает «undefined»!

У кого-нибудь была эта проблема раньше?Есть ли решение доступно?Заранее спасибо.

Это тело таблицы:

<tbody>
    @Code 
      Dim ix = 0
      For Each betalingsAanvraag In Model.BetalingsAanvragen
    End Code
    <tr>
        <td align="center">
            <input id="betalingsaanvraagid" type="hidden" value="@betalingsAanvraag.Id.ToString()" />
            <input name="1tosign" class="hideable button 1stOndertekening" type="button" style="display:none;" value="Ondertekenen" visible="@betalingsAanvraag.IsNogNietOndertekend().ToString().ToLower()" />
            <input name="2tosign" class="hideable button 2ndOndertekening" type="button" style="display:none;" value="2de ondertekening" visible="@betalingsAanvraag.IsGedeeltelijkOndertekend().ToString().ToLower()" />
            <input name="teverzenden" class="hideable teverzenden"  type="checkbox" value="@betalingsAanvraag.Id.ToString()" style="display:none;"  visible="@betalingsAanvraag.IsVolledigOndertekend().ToString().ToLower()"/>
        </td>
        <td align="right">@betalingsAanvraag.Identificatie
        </td>
        <td align="right">@betalingsAanvraag.FactuurNummer
        </td>
        <td align="center">@betalingsAanvraag.VervalDatum.ToString("dd/MM/yyyy")
        </td>
        <td>@betalingsAanvraag.BegunstigdeNaam
        </td>
        <td>@betalingsAanvraag.MededelingSchermWaarde
        </td>
        <td>@betalingsAanvraag.Type
        </td>
        <td class="hidden">@Html.ActionLink("Details", "Detail", "BetalingsAanvraag", New With {.betalingsAanvraagId = betalingsAanvraag.Id}, Nothing)</td>
    </tr>
    @Code 
          ix = ix + 1
      Next
    End Code
</tbody>

Ответы [ 2 ]

1 голос
/ 08 сентября 2011

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

0 голосов
/ 08 сентября 2011

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

...