Ограничение на ввод в инпут (цифры, точка, минус)
Хочу ограничить ввод в инпут только цифрами, точкой, запятой, минусом.
Делаю так: $('.prices').keypress(function(e) { if(e.which!=8 && e.which!=0 && e.which!=109 && e.which!=188 && e.which!=190 && (e.which<48 || e.which>57)) return false; }); Цифры дает писать, а остальные значения нет (109 - минус, 188 - запятая, 190 - точка). Как правильно сделать? |
Цитата:
|
Цитата:
<!DOCTYPE html >
<html >
<head>
<title></title>
<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>
<script language="JavaScript" type="text/javascript">
$(document).ready(function(){
$('.prices').keypress(function(e) {
if (!(e.which==8 || e.which==44 ||e.which==45 ||e.which==46 ||(e.which>47 && e.which<58))) return false;
});
});
</script>
</head>
<body>
<input class="prices" />
</body>
</html>
|
function DPCM(input) {
var value = input.value;
var re = /[^0-9\-\.]/gi;
if (re.test(value)) {
value = value.replace(re, '');
input.value = value;
}}
|
А вот гениальное решение (правда не моё)
<input type="text" onkeyup="validate(this)"> даёт возможность вставить одну точку или одну запятую и цифры
<script>
function validate(inp) {
inp.value = inp.value.replace(/[^\d,.]*/g, '')
.replace(/([,.])[,.]+/g, '$1')
.replace(/^[^\d]*(\d+([.,]\d{0,5})?).*$/g, '$1');
}
</script>
|
| Часовой пояс GMT +3, время: 04:09. |