Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.03.2010, 14:12
Интересующийся
Отправить личное сообщение для Катерина Посмотреть профиль Найти все сообщения от Катерина
 
Регистрация: 20.01.2010
Сообщений: 20

Возможность ввода только цифр и запятой
Мне нужно, чтобы пользователь имел возможность вводить только цифры и запятую (для отделения дробной части числа).
Делаю так
//Происходит автоматическая вставка вот таких полей
....
<input type=\"text\"  id=\"r'+q+p+'\" size=\"15\" onkeyup=\"return proverka(this);\">
...

//Функция
function proverka(input) { 
    var value = input.value; 
    var rep = /[a-zA-Zа-яА-Я]/; 
    if (rep.test(value)) { 
        value = value.replace(rep, ''); 
        input.value = value; 
    };
};

Срабатывает только со второго раза. Почему? Как можно это исправить?
Ответить с цитированием
  #2 (permalink)  
Старый 16.03.2010, 14:36
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

<input type="text" size="15" onkeyup="return proverka(this);" onchange="return proverka(this);" />
<script type="text/javascript">
function proverka(input) { 
    input.value = input.value.replace(/[^\d,]/g, '');
};

</script>
Ответить с цитированием
  #3 (permalink)  
Старый 17.03.2010, 14:49
Интересующийся
Отправить личное сообщение для Катерина Посмотреть профиль Найти все сообщения от Катерина
 
Регистрация: 20.01.2010
Сообщений: 20

У меня через onChange вызывается функция отправки на почту:
<input type=\"text\"  id=\"r'+q+p+'\" size=\"15\" onkeyup=\"return proverka(this);\" onChange=\"msg(this.form)\">

А если делаю Вашим способом (но убираю onChange), то проблема не решается (так же в первом поле буквы вводятся в последующих нет (как и надо)), но на почту не отправляется.

Последний раз редактировалось Катерина, 17.03.2010 в 15:23.
Ответить с цитированием
  #4 (permalink)  
Старый 09.12.2010, 11:02
Новичок на форуме
Отправить личное сообщение для Андрейка Посмотреть профиль Найти все сообщения от Андрейка
 
Регистрация: 09.12.2010
Сообщений: 3

Сообщение от B@rmaley.e><e Посмотреть сообщение
<input type="text" size="15" onkeyup="return proverka(this);" onchange="return proverka(this);" />
<script type="text/javascript">
function proverka(input) { 
    input.value = input.value.replace(/[^\d,]/g, '');
};

</script>
Скрипт очень помог спасибо.

А ограничение количества вводимых чисел можете добавить?
Например чтобы вводилось не менее 6 знаков но не более 12.
Ответить с цитированием
  #5 (permalink)  
Старый 09.12.2010, 11:29
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от Андрейка
А ограничение количества вводимых чисел можете добавить?
У строки есть свойство length - проверяй его и делай соответствующие выводы.
Ответить с цитированием
  #6 (permalink)  
Старый 09.12.2010, 12:01
Новичок на форуме
Отправить личное сообщение для Андрейка Посмотреть профиль Найти все сообщения от Андрейка
 
Регистрация: 09.12.2010
Сообщений: 3

Сообщение от ksa Посмотреть сообщение
У строки есть свойство length - проверяй его и делай соответствующие выводы.
Если не сложно разместите полный код.
Ответить с цитированием
  #7 (permalink)  
Старый 09.12.2010, 12:51
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Варианты кода есть тут
http://javascript.ru/String
Ответить с цитированием
  #8 (permalink)  
Старый 09.12.2010, 14:00
Новичок на форуме
Отправить личное сообщение для Андрейка Посмотреть профиль Найти все сообщения от Андрейка
 
Регистрация: 09.12.2010
Сообщений: 3

Сообщение от ksa Посмотреть сообщение
Варианты кода есть тут
http://javascript.ru/String
Цитата:
<input type="text" size="15" onkeyup="return proverka(this);" onchange="return proverka(this);" />
<script type="text/javascript">
function proverka(input) { 
    input.value = input.value.replace(/[^\d,]/g, '');
};

</script>
Если не сложно допишите этот код. Что-то у меня ничего неполучается.
Ответить с цитированием
  #9 (permalink)  
Старый 09.12.2010, 14:45
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от Андрейка
у меня ничего неполучается
А деньги есть?
Ответить с цитированием
  #10 (permalink)  
Старый 07.02.2012, 10:54
Новичок на форуме
Отправить личное сообщение для boomrest Посмотреть профиль Найти все сообщения от boomrest
 
Регистрация: 07.02.2012
Сообщений: 7

Сообщение от B@rmaley.e><e Посмотреть сообщение
<input type="text" size="15" onkeyup="return proverka(this);" onchange="return proverka(this);" />
<script type="text/javascript">
function proverka(input) { 
    input.value = input.value.replace(/[^\d,]/g, '');
};

</script>
Как сделать, чтобы можно было только одну запятую вводить?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск