Ищем ...
пятница, 18 декабря 2009 г.

Тэг input ввод только цифр

В очередной раз столкнулся с данной задачей, много написано статей о том как ограничить ввод в input'е. Ограничение на ввод только цифр обычно осуществляют при помощи самописных функций, ввиду этого начал искать оригинальное решение. И был приятно удивлен что это можно реализовать одной короткой строкой ;)
<input type="text" onkeyup="this.value = this.value.replace (/\D/, '')" />

* This source code was highlighted with Source Code Highlighter.


Далее в принципе нельзя забывать что некоторые личности любят отключать JS в браузере, поэтому делаем проверку ввода данных на стороне сервера. В итоге мы получим что-то типа этого
<?php
if($_POST['submit'] && is_numeric($_POST['input'])) {
    //process data...
    //then die or redirect otherwise the form below will be shown again
}
?>
<html>
<head></head>
<body>
<form action="" method="post" name="f">
<label>please enter a number</label>
<input type="text" onkeyup="this.value = this.value.replace (/\D/, '')" name="input">
<input type="submit" name="submit">
</form>
</body>
</html>


* This source code was highlighted with Source Code Highlighter.


Неплохое напоминание, и кому-то в помощь.

Комментарии

Unknown комментирует...

Лучше так:
this.value = this.value.replace (/\D+/, '')
чтобы нельзя было скопировать в инпут из буфера обмена

 
Вверх!