Как у невидимого input отключить require?
Привет всем
Есть 3 радио кнопки, по клику на одну из кнопок появляется fieldset с полями для регистрации, но при нажатии на кнопку submit форма не обрабатывается, так как в невидимы input="text" стоит required Помогите пожалуйста убрать required у невидимых полей Код:
<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> |
Павел Буланов,
Вариант не убирать атрибут, а подгружать необходимое ... :write: 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>
|
если бы я был телкой я бы вам дал :)
спасибо от души |
У меня другой вариант: при скрытии fieldset'а выставлять ему disabled, при показе - убирать. Можно даже скрытие сделать чисто на основе атрибута disabled:
.item[disabled]{display:none}
|
<!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>
|
Обязательно подписи в <label> заключи, чтоб кликабельны были.
|
danik.js,
:victory: Вариант с 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>
|
К чему пляски с атрибутом? И вообще, ты опоздал )
|
Цитата:
|
| Часовой пояс GMT +3, время: 13:36. |