Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > input type = reset


Автор: Zorak 29.4.2013, 23:10
Доброго времени суток. Мне нужно сбросить форму. И так, в чем же возникла проблема?
Вот например имею форму.
Код

<form = action = 'page' method = POST>
<input type = 'radio' name = 'name1' value = 'v1'>Ето радио
<input type = 'submit' name = 'go' value = 'отправить'>
<input type = 'reset' value = 'сбросить'>
</form>

Тут то все в порядку. Проблема извлекается с той строки, которой нету выше и которую напишу ниже:
Код

<form = action = 'page' method = POST>
if (isset($_POST['name1'])) $checked = 'checked'; else $checked = '';
<input type = 'radio' name = 'name1' value = 'v1' $checked>Ето радио
<input type = 'submit' name = 'go' value = 'отправить'>
<input type = 'reset' value = 'сбросить'>
</form>


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

 И так два вопроса:
1. Он в этой как бы и не должен сбрасывать чтоли?
2. Как сбросить всю форму как будто при выводе не было проверки ни на какой $cheked.

Спасибо

З.Ы. Код приведен для PHP. Упустил все echo. Прошу на ошибки в коде не указывать, так как писал с головы и на быструю чтобы передать саму суть.

Автор: Arantir 30.4.2013, 01:24
Цитата(Zorak @  29.4.2013,  22:10 Найти цитируемый пост)
1. Он в этой как бы и не должен сбрасывать чтоли?

Сброс формы производится до начального состояния, то есть до того состояния, которое было при загрузке страницы. Иными словами — что сервер отдал, к тому и сбросится.

Цитата(Zorak @  29.4.2013,  22:10 Найти цитируемый пост)
2. Как сбросить всю форму как будто при выводе не было проверки ни на какой $cheked.

С помощью JavaScript. Пройтись по всем input и option внутри формы и удалить атрибуты checked, value и selected. На jQuery в 2 строки делается.
Например:
Код

$('[type=reset]').click(function() {
    $(this).closest('form').find('input, option').removeAttr('checked').removeAttr('value').removeAttr('selected');
});

Автор: Sanchezzz 30.4.2013, 01:27
Это стандартное поведение браузера на ресет
Ресет работает по принципу что загрузил в начале документ то и должен восстановить работает на всех элементах формы.
Тут вариант сбросить форму только через JS.

Пока мой dualap отправил уже дали ответ=)

Автор: Zorak 30.4.2013, 09:15
Понял, спасибо большое.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)