Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Помогите настроить форму (https://javascript.ru/forum/events/70942-pomogite-nastroit-formu.html)

AnthonyFink 14.10.2017 05:47

Помогите настроить форму
 
Народ в общем тема такая есть форма с 2 товарами на лендинге
после заполнения этой формы мне нужно чтобы человека который выбрал товар X при сабмите формы редиректило на страницу X
а если он выбирает товар Y соответственно чтобы редиректило на страницу Y

AnthonyFink 14.10.2017 17:43

вот пример кода
<form action="x.html" method="post" id="lead-form" validate>
<select class="form-control" name="requested_product" id="sa">
<option id="x" value="x.html" selected="selected">product x</option>
<option id="y" value="y.html">product y</option>
</select>
<input class="form-control" id="sz" name="email" type="email" placeholder="E-mail" tabindex="2" required="email">
<input class="form-control" id="sf" name="first_name" type="text" placeholder="First Name" required>
<input class="form-control" id="sl" name="last_name" type="text" placeholder="Last Name" required>
<button requird="email" class="btn btn-primary btn-lg btn-form">Get Started</button>
</form>

laimas 14.10.2017 18:20

<select class="form-control" name="requested_product" onchange="this.form.action=this.value">

AnthonyFink 14.10.2017 18:37

а как мне это сделать для двух опций ?
и чтобы это еще работало при нажатии сабмита

laimas 14.10.2017 18:42

Цитата:

Сообщение от AnthonyFink
а как мне это сделать для двух опций ?

Что значит двух операций и причем тут кнопка submit, если выбор у вас списком? Если честно я вообще не понимаю такой хренотени - выбор товара, это "product x" или "product x". Хотя конечно может и быть, что первый это бублик с дыркой, а второй без, и более ничем не торгуется. Но зачем при этом на разные страницы мотаться....

Но коли надо, то ваш список изменят ation формы, а ее отправка и приведет на страницы в зависимости от выбранного товара, чего вам и надо.

AnthonyFink 14.10.2017 18:51

Цитата:

Сообщение от laimas (Сообщение 467390)
Но коли надо, то ваш список изменят ation формы, а ее отправка и приведет на страницы в зависимости от выбранного товара, чего вам и надо.

можно более подробнее ?

AnthonyFink 14.10.2017 18:53

Цитата:

Сообщение от laimas (Сообщение 467390)
Что значит двух операций и причем тут кнопка submit, если выбор у вас списком? Если честно я вообще не понимаю такой хренотени - выбор товара, это "product x" или "product x". Хотя конечно может и быть, что первый это бублик с дыркой, а второй без, и более ничем не торгуется. Но зачем при этом на разные страницы мотаться....

Я 2 сайта сливаю в один поэтому и мне нужно разные страницы

laimas 14.10.2017 19:22

Цитата:

Сообщение от AnthonyFink
можно более подробнее ?

А что тут подробного надо? Я же все написал - в списке прописан обработчик события onchange. Все, больше ничего не надо, выбирайте, отправляйте форум, проверяйте. Чего тут рассказывать.

laimas 14.10.2017 20:56

Не надо по таким вопросам в личку, форум для этого. :)

Тут в общем то и знаний JS не нужно, все что из него нужно я прописал. Форма отправляется по тому адресу, который указан ей в атрибуте action. Если так как есть отправить вашу форму, то она будет отправлена на страницу x.html, которая у вас указана по умолчанию. При этом и в списке по умолчанию выбран "товар x.html", что для меня честно сказать полная ахинея. )

Если пользователь выберет в списке "product y", то возникнет событие onchange и вот это, что в нем предписано "this.form.action=this.value", означает: "значение выбранной опции списка (это будет и значением списка) присвоить атрибуту action формы". Если после этого отправить форму (жмахнуть submit), то форма будет отправлена уже по адресу y.html.

То есть при каждой смене выбора в списке изменяется адрес отправления формы (то есть будет открыта соответствующая страница), на который она и будет отправляться.

По уму так список не должен иметь по умолчанию какой-то выбранный товар, а предлагать выбрать и запрещать отправление формы, если не выбрано. Тут уже чуть более больше JS кода будет.
Что еще можно сказать, так это по самой форме:

- зачем имя списку (тоже касается и id, зачем они повтыканы), если оно в качестве значений имеет адреса?

- button requird="email" - это вообще полнейшая глупость.

А что касаемо того, что я написал, ну что тут непонятного? Вот вся ваша форма

<form action="x.html" method="post" id="lead-form" validate>
    <select class="form-control" onchange="this.form.action=this.value">
        <option value="x.html" selected="selected">product x</option>
        <option value="y.html">product y</option>
    </select>
    <input class="form-control" name="email" type="email" placeholder="E-mail" tabindex="2" required="email">
    <input class="form-control" name="first_name" type="text" placeholder="First Name" required>
    <input class="form-control" name="last_name" type="text" placeholder="Last Name" required>
    <button requird="email" class="btn btn-primary btn-lg btn-form">Get Started</button>
</form>


выбирайте в списке и отправляйте ее, на своих страницах которые вы указали принимайте. Рассказывать тут нечего, тут JS кот наплакал.

AnthonyFink 14.10.2017 21:54

Цитата:

Сообщение от laimas (Сообщение 467409)
выбирайте в списке и отправляйте ее, на своих страницах которые вы указали принимайте. Рассказывать тут нечего, тут JS кот наплакал.

Все большое спасибо я просто не профессионал а всего лишь любитель


Часовой пояс GMT +3, время: 21:02.