Изменение текста метки из выпадающего списка с помощью Jquery

0

Кажется, я не могу заставить это стрелять.. или действительно изменить текст меток. Может ли кто-нибудь предложить какие-либо рекомендации? Предупреждение существует только потому, что я тестировал, действительно ли это событие на самом деле стреляло. Это, похоже, не так. Единственная другая информация заключается в том, что это форма внутри fancybox iframe. Я даже не уверен, что у меня есть код для изменения текста, но это вторая проблема. Сейчас я не могу запустить событие.

Код

<asp:DropDownList ID="ddlPUom" runat="server" CssClass="form-control input-sm"></asp:DropDownList>



<asp:Label ID="lblpuom" ccclass="col-xs-2 control-label" runat="server" Text=""></asp:Label>


<script type="text/javascript">
    $('#ddlPUom').change(function () {
        alert("did this fire?");
        var lbltext = doc.getElementById("ddlPUom");
        var lblPUOM = doc.getElementById("lblpuom");
        lblPUOM.lbltext = lbltext.innerhtml;
    });
</script>

Спасибо за все комментарии. Вы направили меня в правильном направлении. В конце я сменил метки на стандартный <label></label> который работал с вышеуказанным кодом, и сделал функцию document.ready для обновления из выпадающих списков, которые заданы из кода, расположенного ниже.

  • 1
    Вы установили document на var doc = ?
  • 0
    Можете ли вы включить фрагмент HTML-кода метки?
Показать ещё 3 комментария
Теги:

3 ответа

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

Причина в том, что поскольку ddlPUom является контролем на стороне сервера, идентификатор изменяется, когда он отображается в DOM. Информация о странице и информация управления добавляются и становятся чем-то вроде этого ctl00_Main_ddlPUom

использование

$('[id$=ddlPUom]').change(function() {//id which ends with the text 'ddlPUom'

или

$('[id*=ddlPUom]').change(function() {//id which contains the text 'ddlPUom'

Но здесь есть несколько других способов: qaru.site/questions/249939/...

  • 0
    Спасибо за вашу помощь. Вы были на правильных линиях. Также на самом деле не было необходимости, чтобы метки были запущены на сервере, так как я мог настроить их так, чтобы они выбирали правильные значения из выпадающего списка, которые изначально были установлены из кода позади. Таким образом, в конце установите функцию document.ready, чтобы установить метки, а затем .change, чтобы изменить их при необходимости.
  • 0
    @ user3311356 - рад помочь.
0

Вы могли бы попробовать что-то вроде этого..

<script type="text/javascript">
    $('#ddlPUom').change(function () {
        alert("did this fire?");
        var lbltext = doc.getElementById("<%=ddlPUom.ClientID%>");
        var lblPUOM = doc.getElementById("<%=lblpuom.ClientID%>");
        lblPUOM.lbltext = lbltext.innerhtml;
    });
</script>

Возможно, вам потребуется добавить часть ClientID в раскрывающийся список.

  • 0
    недостаток ClientID заключается в том, что вы не можете написать этот код во внешних файлах сценариев.
  • 0
    Также $('#ddlPUom').change не работает.
0

Ваш код выглядит достаточно корректно, чтобы ваше предупреждение выполнялось. Возможно, идентификатор вашего контроля на самом деле не установлен на ddlPUom. Иногда это чувствительно к регистру. См. Этот пост о чувствительности к регистру. Селекторы класса JQuery, такие как $ (. SomeClass), чувствительны к регистру?

Также проверьте консоль ошибок в своем браузере, чтобы узнать, были ли какие-либо ошибки JavaScript. Firefox: Инструменты> Веб-разработчик> Консоль ошибок Chrome: щелкните правой кнопкой мыши на странице и выберите элемент проверки, нажмите "Консоль" в появившемся окне.

Теперь, когда вы добавили html - код, приведенный ниже, должен активировать событие.

$(document).ready(function(){    
$('#<%=ddlPUom.ClientID%>').change(function () {
            alert("did this fire?");
    }
});
  • 0
    недостаток ClientID заключается в том, что вы не можете написать этот код во внешних файлах сценариев.

Ещё вопросы

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