27.10.2018, 18:37
|
Аспирант
|
|
Регистрация: 27.10.2018
Сообщений: 40
|
|
как взять со скрипта значение для поля input
<div>
<span>Can ID (HEX):</span>
<input maxlength="8" size="6" id="Can_ID" >
</div>
<script>
xxxxxxxxxxxxxxxxxxxx
</script>
в скрипте написано
var Can_IDs = 400;
|
|
27.10.2018, 23:55
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
|
|
28.10.2018, 03:33
|
Аспирант
|
|
Регистрация: 27.10.2018
Сообщений: 40
|
|
почему то не получается ограничить ввод по количеству символов
<div>
<span>Can ID (HEX):</span>
<input type="text" id="Can_ID" onkeyup="var yratext=/['А-я','G-z','\s']/; if(yratext.test(this.value)) alert('Invalid value (valid: A,B,C,D,E,F,1,2,3,4,5,6,7,8,9,0)')" size="6">
</div>
<script>
Can_ID.value = Can_IDs;
if ('+CanFrame_Typ+'=="Std") Can_ID.maxlength = "4";
if ('+CanFrame_Typ+'=="Ext") Can_ID.maxlength = "8";
</script>
-------------------------------------------------------------
var CanFrame_Typ = "Ext";
var Can_IDs = "400";
|
|
28.10.2018, 03:44
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
<input maxlength="8" size="6" id="Can_ID" >
var Can_IDs = 400;
Уже плохо. И взаимодействие клиента с сервером тайна покрытая мраком. Ajax? Да возможно, но это только в случае если изменение каждого параметра есть отдельный запрос. Можно в таком случае и установки контроллера запрашивать ajax запросом, при этом файл переменных в общем-то не нужен, тем более что все настройки пишутся в контроллер. В этом случае поля могут не иметь имен.
Но в начале темы фигурирует submit, а это означает, что сначала выбрали, затем отправили весь выбор. Карячится при этом собирая поля по их ID, ну если охота заморачиваться, то можно. Но куда проще естественный путь - получить форму и отправить.
Имена полей (если интерфейс оправдывает, то их ID) должны быть связаны с переменными так, чтобы с параметрами и полями формы можно было работать анонимно. Вы ведь сотню параметров хотите определить, что каждый Can_ID ручками связывать с каждым Can_ID? И это при том, что поля формы это коллекция, и в этой коллекции не так и много типов, которые различаются способом установки значений - selected, checked, value. Если при этом именовать поля с префиксами, которые будут определять группу типов полей, то хоть для нескольких сотен параметров их установка, это один цикл, максимум 10 строк кода.
|
|
28.10.2018, 04:01
|
Аспирант
|
|
Регистрация: 27.10.2018
Сообщений: 40
|
|
Ну у меня всё побито на вкладки. Максимум 5 форм с ID на вкладке и кнопка submit.При нажатии submit планировал переписывать область флеш и перегенирировать файл с переменными
|
|
28.10.2018, 04:07
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Ну так форма отправляется естественным путем, а естественный путь, это поле формы должно иметь имя, иначе на сервер такое поле не передается. Вы же снабдили поля ID, а значит все придется описывать, причем все именуется так, что черт ногу сломит - переменные параметров никак не связаны с полями формы.
|
|
28.10.2018, 04:33
|
Аспирант
|
|
Регистрация: 27.10.2018
Сообщений: 40
|
|
Имена у них будут одинаковые. Если интересно почитайте про nvs flash у ESP32. Там сохраняются как раз пары НАЗВАНИЕ .. ЗНАЧЕНИЕ
Подскажите всё же почему мой код не работает в плане параметра maxlength
|
|
28.10.2018, 04:42
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Во-первых выбрасывайте из атрибутов полей " if(yratext.test(this.value)) alert('Invalid value...". Во-вторых шаблон рег. выражения для проверки хранить в атрибуте pattern, и вместо js-кода в атрибутах определять сценарий - при отправлении формы проверить ввод, если определен pattern, значит рег выражением по этому шаблону. Поведение такого поля при некорректном вводе может определяться и стилями. И вообще, параметры могут быть различными (говорилось же о списках), и если это для себя, то может проще определить допустимые наборы, а свободный ввод, это типа для url.
Очень сложно что-то советовать, когда не видно концепции, а есть какие-то куски не понятно чего и для чего.
Последний раз редактировалось laimas, 28.10.2018 в 04:44.
|
|
28.10.2018, 04:50
|
Аспирант
|
|
Регистрация: 27.10.2018
Сообщений: 40
|
|
Установка Can_ID.maxlength = "4"; должна работать?
синтаксис правильный?
|
|
28.10.2018, 04:51
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
<style>
.maxlen:invalid {
color: #f00
}
.maxlen:valid {
color: #444;
}
</style>
<input class="maxlen" pattern="[A-F\d]{1,6}" />
|
|
|
|