Как у невидимого 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, время: 06:07. |