Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.12.2013, 20:29
rss rss вне форума
Новичок на форуме
Отправить личное сообщение для rss Посмотреть профиль Найти все сообщения от rss
 
Регистрация: 05.11.2013
Сообщений: 6

проверка поля формы
Помогите понять и сделать проверку поля формы
нужно при вводе в форму:
- если () пустое поле, то все ОК
- если (a) буква, то что-то к примеру alert
- если (1 -> 1) число - ОК
- если (1,1 -> 1,1; 1.1 -> 1,1) дробное число, до 1 цифры после запятой - ОК
- если (1,11111 -> 1,1) дробное больше 1 цифры, то все лишние округляются, и - Ок
- если (,5 -> 0,5; .5 -> 0,5) начинается с точки или запятой, в любом случае и .и, превращается в запятую

http://jsfiddle.net/PXY4u/3/

<div class="sq">
    <input id="id_sq_pl" name="sq_pl" type="number" value="" />
</div>


$('.sq input').unbind().blur( function(){
        var id = $(this).attr('id');
        var val = $(this).val();
        switch(id)
        {
            case 'id_sq_pl':
                var regex = /^[0-9]?\d{0,5}[\.,]?\d{0,1}$/g;
                if ( regex.test(val) || val == '' ) {
                    var val = Math.round( val * 10 ) / 10;
                    $(this).val(val);
                } else {
                    alert('Введите число'); return false;
                }
            break;
        }
         console.log(val);
    });


что-то тут вообще запутался, почему-то не работает

Последний раз редактировалось rss, 07.12.2013 в 08:42.
Ответить с цитированием
  #2 (permalink)  
Старый 06.12.2013, 22:46
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 458

Зачем запятые в десятичных числах, должны быть точки - это стандарт

Последний раз редактировалось Rise, 06.12.2013 в 23:08.
Ответить с цитированием
  #3 (permalink)  
Старый 07.12.2013, 08:36
rss rss вне форума
Новичок на форуме
Отправить личное сообщение для rss Посмотреть профиль Найти все сообщения от rss
 
Регистрация: 05.11.2013
Сообщений: 6

Сообщение от Rise Посмотреть сообщение
Зачем запятые в десятичных числах, должны быть точки - это стандарт
А вы откуда из Европы или России?
Какие стандарты у пользователя?
Это основная задача, данной формы, учесть всех, со своими стандартами в голове.
Ответить с цитированием
  #4 (permalink)  
Старый 07.12.2013, 09:10
rss rss вне форума
Новичок на форуме
Отправить личное сообщение для rss Посмотреть профиль Найти все сообщения от rss
 
Регистрация: 05.11.2013
Сообщений: 6

Форма для русско-язычных пользователей, а пользователи... Уверен в 99,9% случаях, где бы они не писали, ставят запятые.
...сейчас форма уже не зависимо от ввода [.,] принимает точку.

пс. Извините, если показалось, что настаиваю... Просто хочу высказать мысль, форма не для программистом, для простого пользователя.

Последний раз редактировалось rss, 07.12.2013 в 09:31.
Ответить с цитированием
  #5 (permalink)  
Старый 07.12.2013, 10:18
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 458

<input id="id_sq_pl" name="sq_pl" type="text" value="" />

<script>
document.getElementById('id_sq_pl').onblur = function() {
	if (/^(\d*[\.,]?\d+)?$/.test(this.value)) {
		this.value = ((Math.round(((this.value).replace(',','.'))*10)/10)+'').replace('.',',');
	} else {
		alert('Введите число');
	}
}
</script>
Ответить с цитированием
  #6 (permalink)  
Старый 07.12.2013, 16:35
rss rss вне форума
Новичок на форуме
Отправить личное сообщение для rss Посмотреть профиль Найти все сообщения от rss
 
Регистрация: 05.11.2013
Сообщений: 6

Как-то кривовато: http://jsfiddle.net/PXY4u/5/
Если ввести текст, он превращает его в 0
Цифры типа 4,5 - вообще удаляет

Последний раз редактировалось rss, 07.12.2013 в 16:39.
Ответить с цитированием
  #7 (permalink)  
Старый 07.12.2013, 17:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

rss,
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title> - jsFiddle demo</title>

  <script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.js'></script>



  <link rel="stylesheet" type="text/css" href="/css/result-light.css">

  <style type='text/css'>
    /* странная реактиция у формы
хотелось бы:
- если () пустое поле, то все ОК
- если (a) буква, то что-то к примеру alert
- если (1 -> 1) число - ОК
- если (1,1 -> 1,1; 1.1 -> 1,1) дробное число, до 1 цифры после запятой - ОК
- если (1,11111 -> 1,1) дробное больше 1 цифры, то все лишние округляются, и - Ок
- если (,5 -> 0,5; .5 -> 0,5) начинается с точки или запятой, в любом случае и .и, превращается в запятую
*/
  </style>



<script type='text/javascript'>
$(window).load(function(){
$('#id_sq_pl').blur( function(){
        var val = $(this).val();
        if(!val.length) return false;
        val = +val.replace(',','.');
        if(!val) {$(this).val('');alert('Введите правильное число'); return false};
        val = Math.round( val * 10 ) / 10;
        $(this).val((''+val).replace('.',','))
    });
});

</script>


</head>
<body>
  <div class="sq">
    <input id="id_sq_pl" name="sq_pl"  value="" />
</div>

</body>


</html>

Последний раз редактировалось рони, 07.12.2013 в 17:20.
Ответить с цитированием
  #8 (permalink)  
Старый 07.12.2013, 17:47
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 458

Сообщение от rss Посмотреть сообщение
Если ввести текст, он превращает его в 0
Цифры типа 4,5 - вообще удаляет
странно, похоже ты куда то в другое место вводишь
Ответить с цитированием
  #9 (permalink)  
Старый 07.12.2013, 18:13
rss rss вне форума
Новичок на форуме
Отправить личное сообщение для rss Посмотреть профиль Найти все сообщения от rss
 
Регистрация: 05.11.2013
Сообщений: 6

Сообщение от Rise Посмотреть сообщение
странно, похоже ты куда то в другое место вводишь
пример рони, работает именно так, как и хотелось бы, но стоит поменять тип поля на type="number"
ничего не работает
http://jsfiddle.net/PXY4u/8/

подскажите, в чем проблема?

Последний раз редактировалось rss, 11.12.2013 в 10:05.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проверка формы не работает в ie begelme Javascript под браузер 6 13.08.2013 01:00
Проверка заполнености поля формы Telnet Общие вопросы Javascript 5 09.07.2011 21:21
Проверка полей отправляемой формы. denisOgr jQuery 6 18.10.2010 19:40
Простая проверка формы. Добавить "динамики". Jurasmi Элементы интерфейса 3 07.04.2010 16:48
Подгружаемые поля формы AlexJ AJAX и COMET 2 26.06.2009 18:04