#jquery #asp.net #validation #jquery-validate
#jquery #asp.net #проверка #jquery-validate
Вопрос:
Я использую популярный плагин Validate от jquery для проверки всех моих полей. Это отлично работает, когда поля ввода не выполняются на сервере и, следовательно, не переименовывают все идентификаторы и имена для ввода.
Мне интересно, есть ли другой способ выбора входных данных в jquery, чтобы я все еще мог использовать плагин. Jquery приведен ниже:
<script type="text/javascript">
jQuery.validator.messages.required = "";
$(document).ready(function () {
$('#form1').validate({
rules: {
firstName: {
required: true,
},
}
});
});
В настоящее время, если я использую <asp:TextBox.../>
идентификатор, получается «ContentPlaceHolderBody_firstName», а имя получается «ctl00 $ ContentPlaceHolderBody $FirstName».
Я даже пытался заменить имя в jquery, чтобы отразить как идентификатор, так и имя, но безрезультатно.
Каков наилучший способ обойти это? Могу ли я добавить класс и выбрать этот способ? И если да, то как будет выглядеть селектор jquery?
Любая помощь приветствуется! Спасибо!
Комментарии:
1. Какая версия ASP.NET вы употребляете?
Ответ №1:
Вы можете написать некоторый встроенный код на стороне сервера, например:
$('#form1').validate({
rules: {
<%= txtFirstName.ClientID %>: {
required: true,
},
}
});
Ответ №2:
Перейдите к asp.net 4.0
Комментарии:
1. Это более долгосрочное исправление, на которое я надеялся.
Ответ №3:
Установите для свойства ClientIDMode значение static
Ответ №4:
Селектором jquery для класса будет $(«.classname)
Комментарии:
1. $(‘.classname’) — отсутствует кавычка
Ответ №5:
в .net 4.0
вы можете установить set ClientIDMode="static"
и иметь предсказуемые идентификаторы элементов управления
например
<asp:Label ID="Label1" runat="server" ClientIDMode="static" />
и на стороне javascript у вас может быть идентификатор по вашему выбору
$("#Label1").hide();
Ответ №6:
Добавьте класс в свой элемент управления asp, а затем выберите этот класс вместо идентификатора