Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.01.2015, 19:55
Новичок на форуме
Отправить личное сообщение для Павел Буланов Посмотреть профиль Найти все сообщения от Павел Буланов
 
Регистрация: 10.07.2013
Сообщений: 4

Как у невидимого input отключить require?
Привет всем

Есть 3 радио кнопки, по клику на одну из кнопок появляется fieldset с полями для регистрации, но при нажатии на кнопку submit форма не обрабатывается, так как в невидимы input="text" стоит required

Помогите пожалуйста убрать required у невидимых полей

Код:
<style>
fieldset{
    display:none; padding:10px;
    
}
</style>
<script>
function toggleSet(rad)
{
var type = rad.value;
for(var k=0,elm;elm=rad.form.elements[k];k++)
if(elm.className=='item')
elm.style.display = elm.id==type? 'inline':'';
 

}  
</script>




<form method="post" action="confirm.php"  >
<section > 
<legend>Выберите способ доставки:</legend>

<input type="radio" name="dostavka[]" value="courier" onclick="toggleSet(this)">Курье по Минску
<br>
<input type="radio" name="dostavka[]" value="pochta" onclick="toggleSet(this)">Почтовое отправление
<br>
<input type="radio" name="dostavka[]" value="smz" onclick="toggleSet(this)">Самовывоз
<br><br>
Оплата:<br>
<input type="radio" name="oplata" checked> Оплата при получении<br>
</section>

<fieldset    id="courier" class="item">
<legend>Курьерская доставка</legend>
Имя:<br>
<input  type="text" name="fname" id="courier" value="2" required><br>  
Телефон:<br>
<input type="text" name="telefon" required ><br>
Адрес:  
  <br>
<textarea rows="2" cols="21" required >
</textarea><br>
Время доставки: <br>
<input type="radio" name="timed[]" value="до5" >До 5
 
<input type="radio" name="timed[]" value="posle6">После 6
 <br><br>
<input  type="submit" name="submit" value="ПОДТВЕРЖДАЮ">

</fieldset>


<fieldset   id="pochta" class="item">
<legend>Почтовое отправление</legend>
ФИО:<br>
  <input type="text" name="fname" id="text_field_1"  required   ><br>
Телефон:  
  <br>
  <input type="text" name="lname" id="text_field_1"  required  ><br>
Индекс:  
  <br>
  <input type="text" name="index" id="text_field_1"  required   ><br>
Адрес:  
  <br>
<textarea rows="2" cols="21" required>
</textarea>
 <br><br>
<input  type="submit" name="submit" value="ПОДТВЕРЖДАЮ">
</fieldset>



<fieldset   id="smz" class="item">
<legend>Самовывоз</legend>
Имя:<br>
<input type="text" name="fname" required ><br>
Телефон:<br>
<input type="text" name="tel"><br>
Когда вас ждать?<br>
<input type="datetime-local" name="vrema">
 <br>
 <span style="color:#666; font-size:8px"><pre>Внимание, телефон указывать не обязательно,
но заранее предупредите о своем визите,
чтобы ваш заказ был собран вовремя.<pre></span><br>
<input  type="submit" name="submit" value="ПОДТВЕРЖДАЮ">
</fieldset>
 
</form>
Ответить с цитированием
  #2 (permalink)  
Старый 29.01.2015, 20:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Павел Буланов,
Вариант не убирать атрибут, а подгружать необходимое ...
id недолжно повторятся в пределах страницы!!!
id или class для div добавьте сами
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style>
fieldset{
     padding:10px;
     display: inline;
}
div{
   display:none;
}

</style>
<script>
	function toggleSet(rad)
	{
	  var type = rad.value,
          fieldsets = document.querySelectorAll('fieldset'),
          div = document.querySelector('div');
	  for(var k = 0, elm; elm = fieldsets[k]; k++)
	  (elm.id == type ? rad.form : div).appendChild(elm)
	}
</script>

</head>

<body>
<div><fieldset    id="courier" class="item">
<legend>Курьерская доставка</legend>
Имя:<br>
<input  type="text" name="fname"  value="2" required><br>
Телефон:<br>
<input type="text" name="telefon" required ><br>
Адрес:
  <br>
<textarea rows="2" cols="21" required >
</textarea><br>
Время доставки: <br>
<input type="radio" name="timed[]" value="до5" >До 5

<input type="radio" name="timed[]" value="posle6">После 6
 <br><br>
<input  type="submit" name="submit" value="ПОДТВЕРЖДАЮ">

</fieldset>


<fieldset   id="pochta" class="item">
<legend>Почтовое отправление</legend>
ФИО:<br>
  <input type="text" name="fname" id="text_field_1"  required   ><br>
Телефон:
  <br>
  <input type="text" name="lname" id="text_field_1"  required  ><br>
Индекс:
  <br>
  <input type="text" name="index" id="text_field_1"  required   ><br>
Адрес:
  <br>
<textarea rows="2" cols="21" required>
</textarea>
 <br><br>
<input  type="submit" name="submit" value="ПОДТВЕРЖДАЮ">
</fieldset>



<fieldset   id="smz" class="item">
<legend>Самовывоз</legend>
Имя:<br>
<input type="text" name="fname" required ><br>
Телефон:<br>
<input type="text" name="tel"><br>
Когда вас ждать?<br>
<input type="datetime-local" name="vrema">
 <br>
 <span style="color:#666; font-size:8px"><pre>Внимание, телефон указывать не обязательно,
но заранее предупредите о своем визите,
чтобы ваш заказ был собран вовремя.<pre></span><br>
<input  type="submit" name="submit" value="ПОДТВЕРЖДАЮ">
</fieldset></div>
  <form method="post" action="confirm.php"  >
<section >
<legend>Выберите способ доставки:</legend>

<input type="radio" name="dostavka[]" value="courier" onclick="toggleSet(this)">Курье по Минску
<br>
<input type="radio" name="dostavka[]" value="pochta" onclick="toggleSet(this)">Почтовое отправление
<br>
<input type="radio" name="dostavka[]" value="smz" onclick="toggleSet(this)">Самовывоз
<br><br>
Оплата:<br>
<input type="radio" name="oplata" checked> Оплата при получении<br>
</section>
</form>

</body>

</html>
Ответить с цитированием
  #3 (permalink)  
Старый 29.01.2015, 20:45
Новичок на форуме
Отправить личное сообщение для Павел Буланов Посмотреть профиль Найти все сообщения от Павел Буланов
 
Регистрация: 10.07.2013
Сообщений: 4

если бы я был телкой я бы вам дал

спасибо от души
Ответить с цитированием
  #4 (permalink)  
Старый 29.01.2015, 23:10
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

У меня другой вариант: при скрытии fieldset'а выставлять ему disabled, при показе - убирать. Можно даже скрытие сделать чисто на основе атрибута disabled:

.item[disabled]{display:none}
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 29.01.2015, 23:19
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

<!DOCTYPE HTML>
 
<html>
 
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style>
fieldset{
    padding:10px;
    display: inline;
}
fieldset[disabled]{
    display: none;
}
 
</style>
<script>
    function toggleSet(type)
    {
      var fieldsets = document.querySelectorAll('.item');
      for(var i = 0, elm; elm = fieldsets[i]; i++)
      elm.disabled = (elm.id != type);
    }
</script>
 
</head>
 
<body>
<form method="post" action="confirm.php"  >
<section >
<legend>Выберите способ доставки:</legend>
 
<input type="radio" name="dostavka[]" value="courier" onclick="toggleSet(this.value)">Курье по Минску
<br>
<input type="radio" name="dostavka[]" value="pochta" onclick="toggleSet(this.value)">Почтовое отправление
<br>
<input type="radio" name="dostavka[]" value="smz" onclick="toggleSet(this.value)">Самовывоз
<br><br>
Оплата:<br>
<input type="radio" name="oplata" checked> Оплата при получении<br>
</section>
 
<fieldset    id="courier" class="item" disabled>
<legend>Курьерская доставка</legend>
Имя:<br>
<input  type="text" name="fname" id="courier" value="2" required><br> 
Телефон:<br>
<input type="text" name="telefon" required ><br>
Адрес: 
  <br>
<textarea rows="2" cols="21" required >
</textarea><br>
Время доставки: <br>
<input type="radio" name="timed[]" value="до5" >До 5
  
<input type="radio" name="timed[]" value="posle6">После 6
 <br><br>
<input  type="submit" name="submit" value="ПОДТВЕРЖДАЮ">
 
</fieldset>
 
 
<fieldset   id="pochta" class="item" disabled>
<legend>Почтовое отправление</legend>
ФИО:<br>
  <input type="text" name="fname" id="text_field_1"  required   ><br>
Телефон: 
  <br>
  <input type="text" name="lname" id="text_field_1"  required  ><br>
Индекс: 
  <br>
  <input type="text" name="index" id="text_field_1"  required   ><br>
Адрес: 
  <br>
<textarea rows="2" cols="21" required>
</textarea>
 <br><br>
<input  type="submit" name="submit" value="ПОДТВЕРЖДАЮ">
</fieldset>
 
 
 
<fieldset   id="smz" class="item" disabled>
<legend>Самовывоз</legend>
Имя:<br>
<input type="text" name="fname" required ><br>
Телефон:<br>
<input type="text" name="tel"><br>
Когда вас ждать?<br>
<input type="datetime-local" name="vrema">
 <br>
 <span style="color:#666; font-size:8px"><pre>Внимание, телефон указывать не обязательно,
но заранее предупредите о своем визите,
чтобы ваш заказ был собран вовремя.<pre></span><br>
<input  type="submit" name="submit" value="ПОДТВЕРЖДАЮ">
</fieldset>
  
</form>
 
</body>
 
</html>
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #6 (permalink)  
Старый 29.01.2015, 23:20
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Обязательно подписи в <label> заключи, чтоб кликабельны были.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #7 (permalink)  
Старый 29.01.2015, 23:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

danik.js,

Вариант с css
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style>
fieldset{
     padding:10px;
     display: inline;
}

.item[disabled]{display:none}
</style>
<script>
	function toggleSet(rad)
	{
	  var type = rad.value,
          fieldsets = document.querySelectorAll('fieldset');
	  for(var k = 0, elm; elm = fieldsets[k]; k++)
	  elm.id == type ? elm.removeAttribute('disabled')  : elm.setAttribute('disabled', 'disabled')
	}

   window.onload =  toggleSet //чтоб атрибут вручную не прописывать

</script>

</head>

<body>

  <form method="post" action="confirm.php"  >
<section >
<legend>Выберите способ доставки:</legend>

<input type="radio" name="dostavka[]" value="courier" onclick="toggleSet(this)">Курье по Минску
<br>
<input type="radio" name="dostavka[]" value="pochta" onclick="toggleSet(this)">Почтовое отправление
<br>
<input type="radio" name="dostavka[]" value="smz" onclick="toggleSet(this)">Самовывоз
<br><br>
Оплата:<br>
<input type="radio" name="oplata" checked> Оплата при получении<br>
</section>
<fieldset    id="courier" class="item">
<legend>Курьерская доставка</legend>
Имя:<br>
<input  type="text" name="fname"  value="2" required><br>
Телефон:<br>
<input type="text" name="telefon" required ><br>
Адрес:
  <br>
<textarea rows="2" cols="21" required >
</textarea><br>
Время доставки: <br>
<input type="radio" name="timed[]" value="до5" >До 5

<input type="radio" name="timed[]" value="posle6">После 6
 <br><br>
<input  type="submit" name="submit" value="ПОДТВЕРЖДАЮ">

</fieldset>


<fieldset   id="pochta" class="item">
<legend>Почтовое отправление</legend>
ФИО:<br>
  <input type="text" name="fname" id="text_field_1"  required   ><br>
Телефон:
  <br>
  <input type="text" name="lname" id="text_field_1"  required  ><br>
Индекс:
  <br>
  <input type="text" name="index" id="text_field_1"  required   ><br>
Адрес:
  <br>
<textarea rows="2" cols="21" required>
</textarea>
 <br><br>
<input  type="submit" name="submit" value="ПОДТВЕРЖДАЮ">
</fieldset>



<fieldset   id="smz" class="item">
<legend>Самовывоз</legend>
Имя:<br>
<input type="text" name="fname" required ><br>
Телефон:<br>
<input type="text" name="tel"><br>
Когда вас ждать?<br>
<input type="datetime-local" name="vrema">
 <br>
 <span style="color:#666; font-size:8px"><pre>Внимание, телефон указывать не обязательно,
но заранее предупредите о своем визите,
чтобы ваш заказ был собран вовремя.<pre></span><br>
<input  type="submit" name="submit" value="ПОДТВЕРЖДАЮ">
</fieldset>
</form>

</body>

</html>
Ответить с цитированием
  #8 (permalink)  
Старый 30.01.2015, 00:41
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

К чему пляски с атрибутом? И вообще, ты опоздал )
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #9 (permalink)  
Старый 30.01.2015, 00:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от danik.js
К чему пляски с атрибутом?
то тебе пляски нужны, то они лишние - обьяснил бы
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отключить определенный скрипты на сайте при просмотре со смартфона ? kpripper Мобильный JavaScript 4 07.07.2014 11:04
как присвоить класс input? avanesov89 Общие вопросы Javascript 2 11.06.2014 12:29
Как можно добавить данные с помощью JS в input type=file Krava Общие вопросы Javascript 2 22.03.2014 16:38
input как урать подсказку grusha jQuery 4 11.06.2009 23:23
Разным элементам input - разное форматирование. Как? eclipse (X)HTML/CSS 1 25.10.2007 13:55