#jquery #asp.net
#jquery #asp.net
Вопрос:
У меня есть веб-приложение в версии 2008. Я использовал jquery для проверки различных форм и использовал его для других целей. В VS 2008 я получаю идентификаторы элементов управления страницами в jquery, такие как Ctl001_ …. , но теперь я обновил приложение до версии VS 2010, и теперь все мои элементы управления страницами выдают ошибку в jquery, потому что он изменил свой идентификатор там как ContentBody_ ….., я не могу преобразовать все это в новый префикс ContentBody_ …. потому что на сервере мой проект выполняется на .Net Framework 3.5, и там идентификаторы с префиксом Ctl001_ .. .., может ли кто-нибудь подсказать мне способ, которым я могу легко получить идентификатор элемента управления в jquery, не зависящий от .Net Framework.
любая помощь была бы высоко оценена.
Ответ №1:
Вы должны использовать ClientID
свойство элементов управления asp. $('#<%=textBox1.ClientID%>')
вернет $('#ctl001_textBox1')
или как там asp решит переименовать его.
Комментарии:
1. большое вам спасибо за ваш быстрый ответ. но я получил ошибку ‘Undefined’, когда попробовал этот var _popup; функция showpopup() { var txtMessage = $ (‘#<%=txtMessage. ClientID%>’).val(); оповещение (txtMessage); if (txtMessage == ‘Чем бы вы хотели поделиться с миром?’) { parent.ShowMessage(‘Пожалуйста, добавьте несколько комментариев к сообщению!’); возвращает false; } else { this._popup = $(‘#ContentBody_pnlPopup’); this._popup.show(); } }
2. можете ли вы сказать, где именно возникает ошибка? если это вообще возможно, можете ли вы также вставить сгенерированный исходный код
txtMessage
?
Ответ №2:
Вы можете использовать ends с помощью селектора:http://api.jquery.com/attribute-ends-with-selector /
jQuery('[id$="_textBox1"]');
Комментарии:
1. Кстати, решение arvil мне нравится больше, но хорошо иметь выбор. 😉