powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JQuery Validation динамических форм (ASP NET MVC)
12 сообщений из 12, страница 1 из 1
JQuery Validation динамических форм (ASP NET MVC)
    #38589056
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравстуйте!

Создаем страничку на ASP NET MVC.
Для валидации используется jquery.validate и jquery.validate.unobtrusive

Изначально все поля валидируются нормально. Валидируются, как я понимаю, по аттрибутам

Пример для required
Код: html
1.
<input type="text" value="" name="[0].Article" data-val-required="Требуется поле Артикул." data-val="true" class="form-control valid" autocomplete="off">



Возникает проблема, когда мы динамически еще создаем поля формы. Точнее копируем в скрипте(по нажатию на кнопочку) с помощью .clone().
Новые скопированные поля не валидируются.

Как подключить валидацию и для них?

Вызов что-то типа $(".myform").validate() ничего не дает.
...
Рейтинг: 0 / 0
JQuery Validation динамических форм (ASP NET MVC)
    #38589098
ILLHEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sky Dragon,

не пользовался. но предположу почему так. инициализируя валидацию создается объект с существующими на этот момент полями
последующие добавления полей не меняют этот объект. после добавления надо снова проинициализировать валидацию
...
Рейтинг: 0 / 0
JQuery Validation динамических форм (ASP NET MVC)
    #38589124
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ILLHEAD,

Вот вопрос и состоит именно в том, как ее проинициировать :)
...
Рейтинг: 0 / 0
JQuery Validation динамических форм (ASP NET MVC)
    #38589139
ILLHEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sky Dragon,

вы же гдето пишете
jQuery('form_name').validate(...)
это и есть инициализация
...
Рейтинг: 0 / 0
JQuery Validation динамических форм (ASP NET MVC)
    #38589162
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ILLHEAD,

Изначально - нет. Только подключаются скрипты в хедере страницы.


jQuery('form_name').validate(...) - такую штуку пытались прописать в конце скрипта, который копирует поля формы. Как раз для инициализации. Это не помогло.
...
Рейтинг: 0 / 0
JQuery Validation динамических форм (ASP NET MVC)
    #38589170
ILLHEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВызов что-то типа $(".myform").validate() ничего не дает.т.е. повторный вызов не помогает?

в доке есть такое
Код: plaintext
jQuery('form').validateDestroy();

сделайте дестрой перед поторным инитом
...
Рейтинг: 0 / 0
JQuery Validation динамических форм (ASP NET MVC)
    #38589176
ILLHEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sky DragonILLHEAD,

Изначально - нет. Только подключаются скрипты в хедере страницы.


jQuery('form_name').validate(...) - такую штуку пытались прописать в конце скрипта, который копирует поля формы. Как раз для инициализации. Это не помогло.
jQuery('form_name').validate(...) - надо не один раз вызывать а прописав ее в конце вы делаете один раз
пропишите дестрой и валид в теле функции, который вы дополняете полями форму. после аппенда
...
Рейтинг: 0 / 0
JQuery Validation динамических форм (ASP NET MVC)
    #38589201
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ILLHEAD,

1. Почему то ругается, что не знает метода validateDestroy

2.

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
$(function () {
 $('.add-product').click(function(){
  var i="0";
  $(".product-create-card").each(function () {
  if ($(this).attr("name") > i) 
  { 
   i=$(this).attr("name");
  }
   
  });  
  i++;
  var rerg = new RegExp("[0-9]+");
  $(".product-create-card").last().clone(true)
  .attr('name',(i))
  .appendTo(".products-create-cards")
   .find("input[name^='[']").each(function () {
   
    $(this).val("").removeClass("input-validation-error")
    .attr("name", $(this).attr("name").replace(rerg, i));    
   });
   $(".product-create-card").last()
   .find("select[name^='[']").each(function () {
    $(this).removeClass("input-validation-error")
    .attr("name", $(this).attr("name").replace(rerg, i)); 
    });
    
    //jQuery(".form-inline").validateDestroy();
   jQuery(".form-inline").validate();
   return false;
 
});
});




.form-inline - вся форма
.product-create-card - fieldset который копируем
...
Рейтинг: 0 / 0
JQuery Validation динамических форм (ASP NET MVC)
    #38589212
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sky Dragon,

.. по-моему, тут о разных плугинах речь идет .. в вашем случае, скорее всего вот это надо почитать
http://jqueryvalidation.org/Validator.resetForm
...
Рейтинг: 0 / 0
JQuery Validation динамических форм (ASP NET MVC)
    #38589235
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
carrotik,

да, Вы правы.

Вопрос еще такой. Надо ли явно указывать правила валидации?
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
$(".selector").validate({
  rules: {
    name: "required",
    email: {
      required: true,
      email: true
    }
  }}});


Просто ведь при клонировании полей форм, клонируются и все атрибуты валидации. И не очень хочется на десяток полей все вручную переписывать.
И как обратиться тогда в правиле к полю, имя которого, например [1].Article?

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
$(".selector").validate({
  rules: {
    [1].Article: "required",
    email: {
      required: true,
      email: true
    }
  }}});


- естественно выдает ошибку. Брали "[1].Article" в кавычки, все равно валидация не проходит
...
Рейтинг: 0 / 0
JQuery Validation динамических форм (ASP NET MVC)
    #38589295
ILLHEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sky Dragon,

наверное потому что
http://www.w3.org/TR/html4/types.html#type-cdata ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
...
Рейтинг: 0 / 0
JQuery Validation динамических форм (ASP NET MVC)
    #38589377
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо!

Проблему решили.

Только использовался вообще validation.unobtrusive.

Решение взято отсюда
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JQuery Validation динамических форм (ASP NET MVC)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]