|
|
|
| Есть форма, где много полей (не все), которые заполняются по мере выбора. Есть скрипт, выполняющий это заполнение, он работает. Есть скрипт, запоминающий выбранные поля и подставляющий их в форму при перезагрузке страницы. Сама по себе перезагрузка не требуется для заполнения, это только для удобства, т.к. форма большая. Этот тоже работает. Но только с полями, которые прописаны изначально, а с теми, которые заполняются динамически, не работает. Хочется, чтобы при первом входе все поля заполнялись бы значениями, которые потом можно было бы менять. Два первых селекта я таким образом заполнила - выбрала данные по умолчанию, а скрипт отметил выбранные ранее. Но в третьем селекте слишком много данных по умолчанию (поэтому он и строится динaмически), да и не логично как-то давать лишнюю инфу в то время, когда уже выбраны опции в двух предыдущих селектах.
Объясню на примере
первый селект - выбор типа а/м (легковая, грузовая, с/х и пр.)
второй селект - выбор марки (зависит от типа, но по умолчанию подставляется значение первой опции в первом селекте)
третий селект - выбор модели (зависит от первых двух селектов и еще двух инпутов, где вводится год и объем двигателя)
Как в третьем селекте подставить опции не только по событию изменения второго селекта, а и при входе? И возможно ли это? Скрипт, запоминающий форму, отмечает опции в первых селектах, значит, есть и их значения, надо их найти и скормить скрипту, который строит третий селект... кажется так.
Я тут это оставлю и пойду думать дальше. Один из скриптов - sisyphus. Тот, который запоминает форму. | |
|
|
|
|
|
|
|
для: elenaki
(24.10.2016 в 12:53)
| | Много написано, а что к чему совсем не понятно. Что значит "запоминает форму", ее html-код в локальном хранилище клиента? Ну так какие тогда могут быть проблемы? Запоминает данные формы в локальном хранилище? Ну так тогда должен быть сценарий строящий форму по этим данные и опять какие могут быть проблемы?
Или перезагрузка и серверу определить новые поля? Ну так какие проблемы если он строит форму, знает ключи и чему они принадлежат?
Вопрос ни о чем. | |
|
|
|
|
|
|
|
для: confirm
(26.10.2016 в 02:25)
| | Запоминает - значит хранит введенные значения полей. Я не знаю, как добраться до локального хранилища. Значения в поля подставляются, значит, они есть. А если есть, их можно достать. Проблема в том, что один скрипт сохраняет и подставляет значения, а другой создает новые элементы формы, в которые тоже надо бы подставить/выделить. В двух селектах выделяется, а в третьем не хочет. | |
|
|
|
|
|
|
|
для: elenaki
(26.10.2016 в 11:41)
| | Локальное хранилище, это объект localStorage - https://developer.mozilla.org/ru/docs/Web/API/Window/localStorage, https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API.
То что запоминаются значения полей совсем еще не означает работу некоего скрипта. Значения полей запоминает и браузер, под именем поля, и это называется автокомлете, которое можно отключить у формы/поля в атрибуте autocomplete="off".
Если это работа какого-то скрипта, то только его изучение и правка может помочь. | |
|
|
|
|
|
|
|
для: confirm
(26.10.2016 в 14:26)
| | У меня именно скрипт этим занимается и называется он Сизиф, я же написала в первом посте. | |
|
|
|
|
|
|
|
для: elenaki
(26.10.2016 в 16:11)
| | Значит изучайте свой Сизиф, дорабатывайте. | |
|
|
|
|
|
|
|
для: confirm
(27.10.2016 в 03:50)
| | ... | |
|
|
|
|
|
|
|
для: elenaki
(26.10.2016 в 16:11)
| |
<script>
function LSS(a,b){
localStorage.setItem(a, b);
}
function LSG(a){
var ret = localStorage.getItem(a);
if(ret == 'undefined'){
return false;
}
else{
return ret;
}
}
function LSR(a){
localStorage.removeItem(a);
}
</script>
|
| |
|
|
|
|
|
|
|
для: Deed
(28.10.2016 в 08:18)
| | И какой понт от этих функций, если есть скрипт, который сохраняет, а значит и имеет все методы, и нужно добавить в нем условия сохранения еще чего-то? К тому же не факт, что хранение в локальном хранилище. И
console.log(!!localStorage['a'] ? localStorage['a'] : false)
localStorage['a'] = 1;
console.log(!!localStorage['a'] ? localStorage['a'] : false)
|
| |
|
|
|
|
|
|
|
для: confirm
(28.10.2016 в 14:18)
| | Да, конечно. Все так.
Просто, эти функции писал для себя, чтобы не печатать каждый раз "localStorage['a'] = 1;" - три буквы, и готово. | |
|
|
|