Показать сообщение отдельно
  #15 (permalink)  
Старый 03.11.2018, 05:18
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от brp80000
подскажите как указать атрибут download через JS
там указывается имя файла для сохранения
<a id="lastLog">download</a><script>
lastLog.href = URL.createObjectURL(new Blob(["ваши данные для скачивания"], { type: "text/plain" }));
lastLog.download = "lam.log";
</script>


UPD
Вот ещё вариант поля для ввода HEX с границами диапазона, динамически меняющимися от выбора <select>
<style>
	html { font: 120% monospace }
	select, input { font: inherit }
	.invalid { color: red }
</style>
Есть вот такой select
<select name="CanFrame_Type" id="CanFrame_Type">
	<option value="0-7FF">Std</option>
	<option value="800-FFFFFFFF">Ext</option>
</select>
и поле для ввода НЕХ
<input id="Can_ID" name="Can_ID" class="max1">
<script>
function HEX(...ids) {
	const [select, hex] = ids.map(id => document.getElementById(id));
	function update() {
		const [valid, value] = select.value
			.split("-")
			.map(v => [parseInt(v, 16), v.length])
			.reduce(([min], [max, maxLength]) => {
				const value = hex.value.replace(/[^\da-f]/gi, "").slice(0, maxLength);
				const number = parseInt(value, 16);
				return [
					min <= number && number <= max,
					value
				]
			});
		hex.classList.toggle("invalid", !valid);
		hex.value = value;
	}
	addEventListener("input", ({ target }) => [select, hex].includes(target) && update());
	update();
}
new HEX("CanFrame_Type", "Can_ID");
</script>


UPD2
Сообщение от brp80000
Тут можно что угодно вводить !"№;sgфф?
они всё-равно красные, но теперь вводятся только 0-9a-fA-F

UPD3
Сообщение от brp80000
Кстати тестил на старом айфоне, там скрипт не работает((
Вам следует трансформировать код при помощи babeljs.io и подключить сервис полифилов
<script src="https://cdn.polyfill.io/v2/polyfill.min.js"></script>

Последний раз редактировалось Malleys, 03.11.2018 в 06:32.
Ответить с цитированием