проверка поля формы
Помогите понять и сделать проверку поля формы
нужно при вводе в форму: - если () пустое поле, то все ОК - если (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); }); что-то тут вообще запутался, почему-то не работает |
Зачем запятые в десятичных числах, должны быть точки - это стандарт
|
Цитата:
Какие стандарты у пользователя? Это основная задача, данной формы, учесть всех, со своими стандартами в голове. |
Форма для русско-язычных пользователей, а пользователи... Уверен в 99,9% случаях, где бы они не писали, ставят запятые.
...сейчас форма уже не зависимо от ввода [.,] принимает точку. пс. Извините, если показалось, что настаиваю... Просто хочу высказать мысль, форма не для программистом, для простого пользователя. |
<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> |
Как-то кривовато: http://jsfiddle.net/PXY4u/5/
Если ввести текст, он превращает его в 0 Цифры типа 4,5 - вообще удаляет |
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> |
Цитата:
|
Цитата:
ничего не работает http://jsfiddle.net/PXY4u/8/ подскажите, в чем проблема? |
Часовой пояс GMT +3, время: 09:45. |