06.12.2013, 20:29
|
Новичок на форуме
|
|
Регистрация: 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.
|
|
06.12.2013, 22:46
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 456
|
|
Зачем запятые в десятичных числах, должны быть точки - это стандарт
Последний раз редактировалось Rise, 06.12.2013 в 23:08.
|
|
07.12.2013, 08:36
|
Новичок на форуме
|
|
Регистрация: 05.11.2013
Сообщений: 6
|
|
Сообщение от Rise
|
Зачем запятые в десятичных числах, должны быть точки - это стандарт
|
А вы откуда из Европы или России?
Какие стандарты у пользователя?
Это основная задача, данной формы, учесть всех, со своими стандартами в голове.
|
|
07.12.2013, 09:10
|
Новичок на форуме
|
|
Регистрация: 05.11.2013
Сообщений: 6
|
|
Форма для русско-язычных пользователей, а пользователи... Уверен в 99,9% случаях, где бы они не писали, ставят запятые.
...сейчас форма уже не зависимо от ввода [.,] принимает точку.
пс. Извините, если показалось, что настаиваю... Просто хочу высказать мысль, форма не для программистом, для простого пользователя.
Последний раз редактировалось rss, 07.12.2013 в 09:31.
|
|
07.12.2013, 10:18
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 456
|
|
<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>
|
|
07.12.2013, 16:35
|
Новичок на форуме
|
|
Регистрация: 05.11.2013
Сообщений: 6
|
|
Как-то кривовато: http://jsfiddle.net/PXY4u/5/
Если ввести текст, он превращает его в 0
Цифры типа 4,5 - вообще удаляет
Последний раз редактировалось rss, 07.12.2013 в 16:39.
|
|
07.12.2013, 17:16
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,108
|
|
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.
|
|
07.12.2013, 17:47
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 456
|
|
Сообщение от rss
|
Если ввести текст, он превращает его в 0
Цифры типа 4,5 - вообще удаляет
|
странно, похоже ты куда то в другое место вводишь
|
|
07.12.2013, 18:13
|
Новичок на форуме
|
|
Регистрация: 05.11.2013
Сообщений: 6
|
|
Сообщение от Rise
|
странно, похоже ты куда то в другое место вводишь
|
пример рони, работает именно так, как и хотелось бы, но стоит поменять тип поля на type="number"
ничего не работает
http://jsfiddle.net/PXY4u/8/
подскажите, в чем проблема?
Последний раз редактировалось rss, 11.12.2013 в 10:05.
|
|
|
|