Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.11.2017, 10:50
Кандидат Javascript-наук
Отправить личное сообщение для pokk Посмотреть профиль Найти все сообщения от pokk
 
Регистрация: 30.01.2014
Сообщений: 145

OnInput блокировка ввода символов
Как вернуть текст который был ?
Т.е удалить неправильный символ.
<input id="id_Radio_Text" OnInput="MathInput()" name="N_Radio_Text" type="text" maxlength="64">

function MathInput(){
	var Radio_Text = document.getElementById("id_Radio_Text");
	var result = Radio_Text.value.match( /^[0-9a-fA-F]{1,4}$/ig );
	if(result==null){
		Radio_Text.value="";
		return;
	}else{
		return;
	}
}
Ответить с цитированием
  #2 (permalink)  
Старый 29.11.2017, 11:10
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

в MathInput сохранять где-то текст, который получился. Если новый текст не прошел валидацию, возвращать старый.

В идеале хорошо бы ещё позицию курсора возвращать - юзер может редактировать где-то в середине строки.

И конечно, сделать регекс таким образом, чтобы пустую строку допускал (в твоем примере - /^[0-9a-fA-F]{0,4}$/ig)
Ответить с цитированием
  #3 (permalink)  
Старый 29.11.2017, 11:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Сообщение от pokk
maxlength="64"
Сообщение от pokk
/^[0-9a-fA-F]{1,4}$/ig
Ответить с цитированием
  #4 (permalink)  
Старый 29.11.2017, 11:25
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

И a-fA-F при модификаторе i
Ответить с цитированием
  #5 (permalink)  
Старый 29.11.2017, 11:53
Кандидат Javascript-наук
Отправить личное сообщение для pokk Посмотреть профиль Найти все сообщения от pokk
 
Регистрация: 30.01.2014
Сообщений: 145

Благодарю, сделал так
var Radio_Text_old;
function MathInput(){
	var Radio_Text = document.getElementById("id_Radio_Text");
	var result = Radio_Text.value.match( /^[0-9a-fA-F]{0,4}$/ig );
	if(result==null){
		Radio_Text.value=Radio_Text_old;
	}
	Radio_Text_old=Radio_Text.value;
}


PS: про maxlength в курсе просто на одной форме все regexp гоняю
Ответить с цитированием
  #6 (permalink)  
Старый 29.11.2017, 11:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

pokk,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>

  <script>
window.addEventListener("DOMContentLoaded", function() {
    var el = document.getElementById("id_Radio_Text");
    function  check() {
        var val = this.value;
        val = val.replace(/[^0-9a-f]/gi, "");
        val.length > 4 && (val.length = 4);
        val != this.value && (this.value = val);
    }
    el.addEventListener("input",  check, false)
}, false);
  </script>
</head>

<body>
<input id="id_Radio_Text" name="N_Radio_Text" type="text" maxlength="4">


</body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 29.11.2017, 13:05
Кандидат Javascript-наук
Отправить личное сообщение для pokk Посмотреть профиль Найти все сообщения от pokk
 
Регистрация: 30.01.2014
Сообщений: 145

Извиняюсь, но в чем преимущество ?
Ответить с цитированием
  #8 (permalink)  
Старый 29.11.2017, 13:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Сообщение от pokk
Извиняюсь, но в чем преимущество ?
...
это вариант решения, хотите используйте, хотите нет.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Максимальное число символов для ввода paveltkachev Элементы интерфейса 8 26.12.2014 17:51
Выделение символов ввода в jQuery Autocomplete Luter1984 Библиотеки/Тулкиты/Фреймворки 1 04.02.2013 10:13
Запрет ввода неподобающих символов sitebuilder Общие вопросы Javascript 2 05.07.2012 22:32
Блокировка ввода символов! как решить? BoSO Элементы интерфейса 0 27.11.2011 03:38
Поле ввода специальных символов alexsexystayl Серверные языки и технологии 1 06.11.2009 21:29