Ограничение на ввод в инпут (цифры, точка, минус)
Хочу ограничить ввод в инпут только цифрами, точкой, запятой, минусом.
Делаю так: $('.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, время: 11:17. |