Javascript.RU

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

Генерация ссылки с помощью input
Есть вот такая форма
Версия:   <input type="radio" name="version" value="64"> 64gb
   <input type="radio" name="version" value="32"> 32gb
   <input type="radio" name="version" value="16"> 16gb <br>
Цвет: <input type="radio" name="color" value="black"> black
   <input type="radio" name="color" value="white"> white

Нужно чтобы после выбора версии и цвета сгенерировалась ссылка с переходом куда-нибудь.
Многое перепробовал, пока что ничего не получилось.
Ответить с цитированием
  #2 (permalink)  
Старый 31.03.2013, 00:40
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

<!DOCTYPE html>
<html>
<head>
	<meta charser="utf-8">
	<title>…</title>
</head>
<body>
	<form class="example" action="">
		<fieldset>
			<legend>Версия:</legend>
			<label><input type="radio" name="version" value="64" checked> 64 GB</label>
			<label><input type="radio" name="version" value="32"> 32 GB</label>
			<label><input type="radio" name="version" value="16"> 16 GB</label>
		</fieldset>
		<fieldset>
			<legend>Цвет:</legend>
			<label><input type="radio" name="color" value="black" checked> Black</label>
			<label><input type="radio" name="color" value="white"> White</label>
		</fieldset>
		<div>
			<a class="link" href="/"></a>
		</div>
	</form>
	<script>
	if (!Function.prototype.bind) {
		//https://github.com/Octane/jsCore/blob/master/js/common/function.js
	}

	if (!Array.from) {
		Array.from = Array.prototype.slice.call.bind(Array.prototype.slice);
	}

	function ExampleForm(formElement) {
		this._form = formElement;
		this._link = formElement.querySelector(this.linkSelector);
	}

	ExampleForm.prototype = {
		constructor: ExampleForm,
		linkSelector: ".link",
		url: "http://site.com/",
		_form: null,
		_link: null,
		_onSubmit: function (event) {
			event.preventDefault();
		},
		_getRadioGroupValue: function (groupName) {
			var radioGroup = this._form[groupName],
				i = radioGroup.length, input;
			while (i--) {
				input = radioGroup[i];
				if (input.checked) {
					return input.value;
				}
			}
			return undefined;
		},
		_onRadioGroupChange: function () {
			var version = this._getRadioGroupValue("version"),
				color = this._getRadioGroupValue("color");
			this._link.href = [
				this.url,
				"?",
				"version=", encodeURIComponent(version),
				"&",
				"color=", encodeURIComponent(color)
			].join("");
			this._link.innerHTML = document.createTextNode(color + " " + version).nodeValue;
		},
		init: function () {
			var form = this._form;
			form.addEventListener("submit", this._onSubmit, false);
			this._onRadioGroupChange = this._onRadioGroupChange.bind(this);
			Array.from(form.elements).forEach(function (formElement) {
				if (formElement.type = "radio") {
					formElement.addEventListener("change", this._onRadioGroupChange, false);
				}
			}, this);
			this._onRadioGroupChange();
		}
	};

	(new ExampleForm(document.querySelector(".example"))).init();
	</script>

</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание ссылки с помощью JavaScript webmw2 Events/DOM/Window 3 28.02.2013 18:27
При добавлении DOCTYPE "плывут" размеры input type=text Demath (X)HTML/CSS 4 08.07.2012 19:27
Изменение цвета ссылки с помощью js Alex Pacifik Элементы интерфейса 3 31.01.2012 15:08
jquery выбрать div с помощью ссылки в нем nioxkzn jQuery 2 02.04.2011 00:40
Событие при вставке ссылки в input Flake Общие вопросы Javascript 1 21.08.2010 12:19