Вопрос в продолжение.
1. В
myinput вводится кодовое слово.
2. Если совпадение найдено, выполняется действие - в
myselect выбирается option 3 (добавляется атрибут selected), а option 2 и 4 блокирует (добавляется атрибут disabled). Всё отлично.
3. Но (! отступление) оба эти элемента находятся в форме
myform которая отправляется методом $_POST, и здесь через PHP сервер проверяет правильно ли заполнены поля, и, если неправильно, сервер возвращает форму с сообщением о незаполненных полях.
В случае с
input или
textarea я просто могу вернуть value с помощью PHP вот так:
<input name="myinput" id="myinput" value='<?php if($_POST["myinput"]) { echo $_POST["myinput"]; } ?>'>
Но с элементом select такое не проходит..
Записать состояние
myselect конечно можно и с помощью jQuery cookies:
$(document).ready(function(){
$('#myselect').change(function(){$.cookie('myselect', $(this).attr('value'));});
});
Но в в этом случае состояние записывается, только если произошёл именно выбор .change (нажатие на этом элементе
myselect).
То есть я не могу применить этот метод, если состояние
myselect изменено с помощью ввода ключевого слова в
myinput, т.к. здесь не было фактического нажатия (выбора) на элементе
myselect.
Возможно я что-то упустил, и вместо .change для записи куки нужно использовать что-то другое..
Конечно, как вариант решения - валидировать форму на правильность заполненных полей можно и через jQuery, но в самой форме есть captcha, и тогда получается проблема с сессиями, т.к. без перезагрузки страницы не открывается новая сессия..
Вопрос: Как сохранить состояние
myselect (какие option выбраны, а какие блокированы), если состояние этого элемента было изменено без нажатия на него (с помощью другого элемента), после проверки формы и перезагрузки страницы?
Есть мысли по этому поводу?
Напомню структуру формы:
<form name="myform" id="myform">
<input name="myinput" id="myinput">
<select name="myselect" id="myselect">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</form>