Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.02.2016, 13:02
Аватар для AntonMs
Профессор
Отправить личное сообщение для AntonMs Посмотреть профиль Найти все сообщения от AntonMs
 
Регистрация: 25.01.2015
Сообщений: 163

Предотвратить написание символа
Есть input и нужно разрешить писать в нем только точку, запятую и цифры.
Вопрос в том как запретить написание символа после его проверки но до вставки в input .
Вообщем удалось реализовать редактирование строки после вставки в поле но это визуально видно.
Подскажите пожалуйста решение, а если не тяжело то с примерами. Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 12.02.2016, 13:32
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

pattern="[,\.\d]"
Ответить с цитированием
  #3 (permalink)  
Старый 12.02.2016, 13:49
Аватар для AciDWarrioR
Кандидат Javascript-наук
Отправить личное сообщение для AciDWarrioR Посмотреть профиль Найти все сообщения от AciDWarrioR
 
Регистрация: 11.11.2015
Сообщений: 136

Сообщение от laimas Посмотреть сообщение
pattern="[,\.\d]"
Мне кажется задача была не совсем в этом. Он просит, чтобы символ проверялся при вводе с клавиатуры, а не при отправки формы. Я так думаю там надо написать функцию на
keydown
Ответить с цитированием
  #4 (permalink)  
Старый 12.02.2016, 14:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

AntonMs,
чёртова дюжина ограничений для ввода
отключаем лишние кнопы
Ответить с цитированием
  #5 (permalink)  
Старый 12.02.2016, 14:28
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Сообщение от AciDWarrioR Посмотреть сообщение
Я так думаю там надо написать функцию на
keydown
Для keyDown event.keyCode будет содержать одно и тоже кодовое значение для (,б) и (ю.) соответственно.
Ответить с цитированием
  #6 (permalink)  
Старый 12.02.2016, 14:35
Аватар для AciDWarrioR
Кандидат Javascript-наук
Отправить личное сообщение для AciDWarrioR Посмотреть профиль Найти все сообщения от AciDWarrioR
 
Регистрация: 11.11.2015
Сообщений: 136

destus,
Особо не разбирался в этом, просто увидел тему, то что пришло в голову для решения.
AntonMs,
<!DOCTYPE html>
<html lang="en">
<head>
	<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<input type='text' id='inp'></input>	
</body>
</html>
<script>
$( "#inp" ).keypress(function(event) {
  var simb =String.fromCharCode(event.keyCode);
  if(simb.match(/[\.,0-9]/)){
  	$('#inp').append(simb);
  }
  	  else{
  	  	return false;
  }
});
</script>

if(!simb.match(/[\.,0-9]/)){
  	return false;
  }

Последний раз редактировалось AciDWarrioR, 12.02.2016 в 14:43. Причина: Исправил код немнго
Ответить с цитированием
  #7 (permalink)  
Старый 12.02.2016, 15:04
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от AciDWarrioR
Мне кажется задача была не совсем в этом.

Значит replace(/[^,\.\d]/, '') при вводе.
Ответить с цитированием
  #8 (permalink)  
Старый 12.02.2016, 15:05
Аватар для AciDWarrioR
Кандидат Javascript-наук
Отправить личное сообщение для AciDWarrioR Посмотреть профиль Найти все сообщения от AciDWarrioR
 
Регистрация: 11.11.2015
Сообщений: 136

laimas,
По-моему уже все что-то захотели сделать, а от автора тишина, нужно ли ему вообще то, что здесь пишется...
Ответить с цитированием
  #9 (permalink)  
Старый 12.02.2016, 15:16
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Сообщение от laimas Посмотреть сообщение
Значит replace(/[^,\.\d]/, '') при вводе.
<!DOCTYPE HTML>
<html>
<head>
   <script>
       function onlydigit(inp) {
           inp.value = inp.value.replace(/[^,.0-9]/, "");
     }
   </script>
</head>
<body>
<input id="test" type="text" oninput="onlydigit(this);" /> 
</body>
</html>

Все поучаствовали? Кто еще не высказался?
Ответить с цитированием
  #10 (permalink)  
Старый 12.02.2016, 16:11
Аватар для AntonMs
Профессор
Отправить личное сообщение для AntonMs Посмотреть профиль Найти все сообщения от AntonMs
 
Регистрация: 25.01.2015
Сообщений: 163

Решил. Спасибо всем за советы.
dom.onkeypress = function(event){
	var e = String.fromCharCode(event.keyCode);
	if(isNaN(e) && e !== ',' && e !== '.'){
		return false;
	}
}

Самое странное что этот-же вариант пробовал до создания темы и fromCharCode возвращал какие-то дроби а return false вообще не срабатывало хотя событие ловилось. Вообщем так и не понял что не так было
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Предотвратить отправку формы и перезагрузку страницы DmitriSpartak Общие вопросы Javascript 4 29.05.2015 21:24
Сохранение символа и его вывод на экран, вся цепочка процесса FanAizu Оффтопик 1 21.03.2015 01:58
Поиск символа "@" в тексте antoshka1509 AJAX и COMET 1 04.11.2014 23:34
Замена или удаление последнего символа BashOrgRu jQuery 2 11.01.2014 14:01
Написание и одновременный просмотр Sundro Общие вопросы Javascript 4 29.07.2011 14:34