Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.09.2013, 15:59
Аспирант
Отправить личное сообщение для amf1k Посмотреть профиль Найти все сообщения от amf1k
 
Регистрация: 05.08.2013
Сообщений: 32

валидация инпута
Есть инпут, в который нужно ввести число, если мы вводим букву, выводится сообщение о ошибке! вопрос: как сделать так, что-бы если мы ввели не число, инпут - border был красным цветом? есть класс .error , который отвечает за это, только там border не работает, работает только background! как это исправить???
<html>
<head>

<style>
.wrap {
    width: 376px;
    margin: 0 auto;
    padding: 10px;
    border: 1px solid #C6CBD0;
    box-shadow: 0 2px 10px rgba(0,0,0,0.2);
}

.wrap h1 {
    text-align: center;
    font: 16px/18px Arial, Tahoma, sans-serif;
    color: #7CA6CD;
}

.wrap label {
    font: 14px/18px Arial, Tahoma, sans-serif;
    color: #555555;
}

.wrap input[type=text] {
    width: 140px;
    height: 28px;
	margin: 0 0 5px 0px;
	padding: 4px 5px;
    border: 1px solid #C6CBD0;
    border-radius: 4px;
	font: 14px/18px Arial, Tahoma, sans-serif;
    color: #555555;
    outline: none;
}

.wrap input[type=text]:focus  {
    border-color:#56b4ef;
    box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 0 8px rgba(82,168,236,.6);
    -webkit-box-shadow: inset 0 1px 3px rgba(0,0,0,.05),0 0 8px rgba(82,168,236,.6);
    -moz-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 0 8px rgba(82,168,236,.6);
}

.tooltip {
    font: 13px/18px Arial, Tahoma, sans-serif;
    color: #555555;
}

/*Инпут меняет цвет, если ввели не цифры*/
.error {
    background: #B94A48;
}


.error_text {
    width: 275px;
    font: 13px/18px Arial, Tahoma, sans-serif;
    color: #597BA5;
    border: 1px solid #DDDDDD;
    padding: 5px;
}
</style>

</head>
</html>
<body>
<div class="wrap">
    <label>Введите ваш возраст: <input type="text" name="age"/></label>
    <div class="tooltip" id="error">Здесь будет ошибка, если вы введёте не число!</div>

<script>
var input = document.getElementsByName('age')[0];
var errorHolder = document.getElementById('error');

input.onblur = function() {
  if (isNaN(this.value)) { // введено не число
    // показать ошибку
    this.className = 'error';
    errorHolder.innerHTML = '<div class="error_text">Вы ввели не число. Исправьте, пожалуйста!</div>'
  }
}

input.onfocus = function() { 
  // сбросить состояние "ошибка", если оно есть
  if (this.className == 'error') {
    this.className = '';
    errorHolder.innerHTML = '';
  }
}
</script>

</div>
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 16.09.2013, 16:08
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

html5 не подходит?
<form action="#">
  <div>
    <input type="number" placeholder="10" required>
  </div>


  <div>
    <input type="submit" value="Submit" />
  </div>
</form>
Ответить с цитированием
  #3 (permalink)  
Старый 16.09.2013, 16:15
Аспирант
Отправить личное сообщение для amf1k Посмотреть профиль Найти все сообщения от amf1k
 
Регистрация: 05.08.2013
Сообщений: 32

HTML5 нет!
Ответить с цитированием
  #4 (permalink)  
Старый 18.09.2013, 14:34
Аспирант
Отправить личное сообщение для amf1k Посмотреть профиль Найти все сообщения от amf1k
 
Регистрация: 05.08.2013
Сообщений: 32

не кто не поможет?)
Ответить с цитированием
  #5 (permalink)  
Старый 18.09.2013, 14:49
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

amf1k, начни с того, что повесь обработчик onkeyup... Считывай значение value, проверяй его...
Останется проверить копирование из буфера...
Ответить с цитированием
  #6 (permalink)  
Старый 18.09.2013, 14:52
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от amf1k
HTML5 нет!
Прям как в песне...

Цитата:
Солнечному миру - да! Да! Да!
Ядерному взрыву - нет! Нет! Нет!
Ответить с цитированием
  #7 (permalink)  
Старый 18.09.2013, 15:36
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Простой пример:
<input id="number" oninput="validation(this)" type="text" />

var tmp = '';

function validation(that) {
	if(that.value.match(/^[0-9]+$/)) tmp = that.value;
	else that.value = tmp;
}
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вытащить данные из одного инпута и поместить в другой tiksi jQuery 3 28.05.2013 08:36
Валидация пользователя по IP-адресу lazerru Общие вопросы Javascript 1 03.04.2013 12:40
Валидация формы Ваяс Элементы интерфейса 8 11.07.2012 15:20
Внешняя валидация формы grego Events/DOM/Window 1 19.03.2012 23:03
Валидация required не работает "на лету" Tomas jQuery 5 25.02.2011 07:08