frendlix
@frendlix
Event-destroy

Как убирать обязательные поля при Show/hide?

День добрый!
Суть вопроса в следующем...

Есть выпадающий список, с вариантами выбора человек, от 1 до 10: jsfiddle.net/ug52q65z
При выборе одного человека выпадают поля для заполнения, Ф.И.О и т.д часть из полей обязательны для заполнения. ID этой формы #1

При выборе двух человек форма с полями #1 исчезает и появляется форма #2 в которой те же самые пункты что и в форме #1 но с другими ID, и Ф.И.О и т.д №2 и тут обязательные поля тоже есть

При выборе трех человек форма с полями #2 исчезает появляется форма #3 в которой уже три раза есть ячейки с вводом данных для уже трех участников, ну и так далее.

Обязательные поля есть во всех 10-ти вариантах...
Фишка сейчас в том, что когда человек например выбирает число человек - 3, и заполняет всю форму, форма ругается, так как обязательные поля для формы #1 и #2 не заполнены... как их по умному убрать, или присвоить им значение например n/a при исчезании .hide() в голову не приходит, сейчас код вот такой:
jQuery.noConflict();
jQuery(document).ready(function($) {

  $(".wpcf7-form-control[name]").each(function() {
    var MyClass = $(this).attr("name");
    $(this).addClass (MyClass);
  });
 
  $("label[for]").each(function() {
    var MyClass = $(this).attr("for");
    $(this).addClass (MyClass);
  });
  
  function myCFReset() {
    $("#1_name,#2_name,#3_name,#4_name,#5_name,#6_name,#7_name,#8_name,#9_name,#10_name").hide();
  }

  myCFReset();
  
  $("select.productType").change(function() {
    if ($(this).val() == "1 участник") {
      myCFReset();
      $("#1_name").show();
    }
    else if ($(this).val() == "2 участника") {
      myCFReset();
      $("#2_name").show();
    }
    else if ($(this).val() == "3 участника") {
      myCFReset();
      $("#3_name").show();
    }
	else if ($(this).val() == "4 участника") {
      myCFReset();
      $("#4_name").show();
    }
	else if ($(this).val() == "5 участников") {
      myCFReset();
      $("#5_name").show();
    }
	else if ($(this).val() == "6 участников") {
      myCFReset();
      $("#6_name").show();
    }
	else if ($(this).val() == "7 участников") {
      myCFReset();
      $("#7_name").show();
    }
	else if ($(this).val() == "8 участников") {
      myCFReset();
      $("#8_name").show();
    }
	else if ($(this).val() == "9 участников") {
      myCFReset();
      $("#9_name").show();
    }
	else if ($(this).val() == "10 участников") {
      myCFReset();
      $("#10_name").show();
    }
    else { 
      myCFReset();
    }
  });

});


Самое логичное - добавить значение для полей что невидны например... или вообще удалять поля, которые не нужны, ну то есть выбрано $("#3_name").show(); удалять всё другие id...
Куда бежать? И как...
  • Вопрос задан
  • 237 просмотров
Пригласить эксперта
Ответы на вопрос 1
PavelK
@PavelK
Жесть... Индусский код или копи-паст работает быстрее?

Плагин contact form 7 не рассчитан на такое использование.
Он и будет ругаться, если какие-то поля не заполнены, в том числе при отправке не обработку этой формы.

Генерируйте при выборе участника форму на лету (по шаблону оригинальной)
тогда и скрывать/показывать ничего не надо и можно ограничится одной формой.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы