странное поведение с текстовым полем asp.net, когда сделано только для чтения

0

У меня есть страница asp.net - она отображает ряд пользовательских элементов управления, на главной странице - у меня есть текстовое поле asp.net - в некоторых случаях оно должно быть доступно для редактирования, в других оно должно быть только для чтения. По большей части все работает так, как ожидалось. Есть небольшая ошибка, с которой я сталкиваюсь.

Изображение 174551

Поэтому в столбце "Предыдущий год" рендеринг значений должен быть только 1, 2, 3, 0 и т.д. - как вы можете видеть по какой-то причине при рендеринге разметки он создает эту разметку:

<td id="ctl00_ctl00_PartContentPlaceHolderMain_ContentPlaceHolderMain_ctl00_ctrlComparison_ctrlComparisonCars1_ctl06">
                        <input name="ctl00$ctl00$PartContentPlaceHolderMain$ContentPlaceHolderMain$ctl00$ctrlComparison$ctrlComparisonCars1$tbPreviousNoManualCars" type="text" value="1" disabled="disabled" id="ctl00_ctl00_PartContentPlaceHolderMain_ContentPlaceHolderMain_ctl00_ctrlComparison_ctrlComparisonCars1_tbPreviousNoManualCars" class="tbPreviousNumber ui-widget-content ui-corner-all" style="width:50px;display:none;"><span>1</span><span>1</span>                     
                    </td>

Таким образом, проблема заключается в создании двойного диапазона. На моей главной странице, которая отображает этот элемент управления, я хочу сделать что-то вроде:

        var test = $("#ctl00_ctl00_PartContentPlaceHolderMain_ContentPlaceHolderMain_ctl00_ctrlComparison_ctrlComparisonCars1_PreviousNoManualCars").children().find('span').val();
        alert(test);

Однако мое предупреждение не определено. Можно ли удалить один из этих промежутков, используя что-то похожее на вышесказанное?

Также есть лучший способ получить идентификатор, который будет отображаться - я просто вытащил точный текст на экране из Developer Tools только для тестирования, чтобы попытаться заставить это работать.

благодаря

1 ответ

1
Лучший ответ

Вы использовали val(), но он должен быть text(), поскольку он не является элементом ввода, его span

также использовать следующий()

 var test = $("#ctl00_ctl00_PartContentPlaceHolderMain_ContentPlaceHolderMain_ctl00_ctrlComparison_ctrlComparisonCars1_tbPreviousNumberNoManualCars")
    .next('span').text();
    alert(test);
  • 0
    Привет Мурали - спасибо за ваш ответ - я использовал следующее - $ ("# ctl00_ctl00_PartContentPlaceHolderMain_ContentPlaceHolderMain_ctl00_ctrlExposureComparison_ctrlExposureComparisonCanada1_tbPreviousNumberPrivatePassengers ') () ()") (). - который работает в том смысле, что он удаляет диапазон и данные в таблице верны - есть ли лучший способ получить идентификатор из элемента управления - вместо копирования того, что я нашел из визуализированной разметки
  • 1
    @KOL, рад, что это работает. Вы можете получить доступ к элементу, отличному от id, если вы не можете предсказать. Вы можете получить к нему доступ, используя class и его attriute зависит от вашей ситуации. Проверьте jquery selector для более подробной информации. На данный момент вы можете использовать $("input[id*='tbPreviousNumberNoManualCars']") что говорит, что ввод с идентификатором содержит слово tbPreviousNumberNoManualCars

Ещё вопросы

Сообщество Overcoder
Наверх
Меню