Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Числовой ввод (https://javascript.ru/forum/jquery/12242-chislovojj-vvod.html)

Johny 08.10.2010 14:54

Числовой ввод
 
Ещё раз всем доброго времени суток. Появилась такая задача: человек вводит какое-то число и оно сразу же проверяется и выводится в определенном формате. Например, число 1234567. После ввода цифры 4 появляется пробел, т.е. 1 234. Смысл такой. Возможно, есть какие-либо уже готовые решения?

Gvozd 08.10.2010 15:00

Цитата:

Сообщение от Johny
Возможно, есть какие-либо уже готовые решения?

возможно
вас что в гугле забанили?

Johny 08.10.2010 15:05

Нужна проверка на лету. А гугл выдает только проверки после ввода

exec 08.10.2010 15:08

Делайте проверку по onkeypress поля.

Johny 08.10.2010 15:12

Может, есть уже готовые плагины наподобие «Masked Input Plugin»? Времени очень мало просто чтобы писать\изучать осталось...

Gvozd 08.10.2010 15:22

Цитата:

Сообщение от Johny
Времени очень мало просто чтобы писать\изучать осталось...

Это ваша проблема.
Этот форум для тех кто находит время на то, чтобы писать и изучать, и занимается этим.
и помощь оказывается тем, кто прикладывает свои усилия для решения своей проблемы.
Если вы не хотите тратить свое время, а хотите чтобы кто-то другой потратил время на решение проблемы за вас, и дал вам готовый ответ, то для вас предназначен раздел форума "Работа"

Johny 08.10.2010 15:32

Заметьте, я не пытаюсь возложить свою проблему на чужие плечи. Мы все здесь хотим учиться. Мне легче учиться на готовом. Поэтотму если кто-то уже сталкивался с готовыми решениями, прошу поделиться.

Gvozd 08.10.2010 15:46

Цитата:

Сообщение от Johny
Мы все здесь хотим учиться

Цитата:

Сообщение от Johny
Времени очень мало просто чтобы писать\изучать осталось...

а мне кажется, что вы не учится хотите, а решить данную задачу любым способом, и в срок.
Под любым способом, я понимаю, что вы вполне будете довольны если за вас все сделают.
Это очевидно из того, что вы за полчаса все еще ничего не сделали.
Ни поискали в гугле решения, ни попытались его адаптировать, не поискали статей по вашей тематики.
Мы до сих пор не увидели ни капли результата вашего труда, из чего следует, что вы ничего не делали.


Цитата:

Сообщение от Johny
Нужна проверка на лету. А гугл выдает только проверки после ввода

Если вы уже нашли решения в гугле, то их можно было бы уже адаптировать под себя с помощью этого:
Цитата:

Сообщение от exec
Делайте проверку по onkeypress поля.

но, вы пока еще ничего не сделали.
Даже не задали вопроса "О чем вы вообще, я не понимаю вашего ответа?! Где об этом можно прочитать?"
на всякий случай отвечу:
http://javascript.ru/tutorial/events...-obrabotchikov

Пожалуйста не пишите пока не прочтете статью, и не приложите минимальные усилия как JS-программист, для того чтобы изменить чужой скрипт под себя
хотя прочитав еще одну подборку статей, и зная о том, что текст в input хранится в свойстве .value его объекта, вы сможете полностью решить вашу задачу.
а ну, еще вам понадобится работа со строками, желательно с регулярными выражениями(хотя можно и без них).

Вот это был правильный ответ на правильный вопрос человека, который хочет учится.
увы, вы не задали этот вопрос.

Когда вы все это сделаете, и у вас все еще что-то не получится, выкладывайте ВАШ код(не полностью чужой), и задавайте вопорс в чем ваша ошибка в попытке решить вашу задачу

PS
Цитата:

Сообщение от Johny
Поэтотму если кто-то уже сталкивался с готовыми решениями, прошу поделиться.

Эта задача на пять минут уже знающему на среднем уровне JS, и на полчаса-час гугления и чтения мануалов, для абсолютного новичка.
Поэтому абсолютно не важно сталкивался кто-либо с этой конкретной задачей
Естественно из-за отрывочных знаний новичек напишет весьма плохой код, но он все-таки будет рабочим.
Хотя лучше все-таки если бы он изучал последовательно JS

Sweet 08.10.2010 15:51

Цитата:

Сообщение от Johny
Поэтотму если кто-то уже сталкивался с готовыми решениями, прошу поделиться.

Там решение на 3 с половиной строчки. Вот набросал по быстренькому за 3 минуты.
Введите цифры: <input type="text" />
<br />Ваш телефон: <div></div>
<script>
document.getElementsByTagName('input')[0].onkeyup = function(){
  var phone = '', value = this.value.match(/\d/g);
  if(!value) return;
  for(var i = 0; i < value.length; i++){
    if(i > 9) break;
    if(i==3) phone += ')';
    if(i==6 || i==8) phone += '-';
    phone += value[i]
  }
  document.getElementsByTagName('div')[0].innerHTML = '+7(' + phone;
}
</script>

Sweet 08.10.2010 17:48

<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<input id="qwe" type="text" />
<script type="text/javascript">
$('#qwe').keyup(function(e){
  var str = '', value = $(this).val().match(/\d/g);
  if(!value) return;
  for(var i = 0; i < value.length; i++){
    if(i%3==0) str += ' ';
    str += value[i];
  }
  $('#qwe').val(str);
});
</script>


Часовой пояс GMT +3, время: 07:34.