[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Фигня, а не могу найти!
Gandjubas
Подскажите пожалуйста как проверить в JavaScript тип данных и как переделать этот тип. То есть заставить цифру один воспринимать как цифру, а не как символ.
переменную беру из формы <input type="text" >
и как проверить все символы в вводимых данных на соответсвие типа данных
чтобы в числе не было букв!
И ещё как сделать форматный вывод, чтобы после точки было две цифры?
То есть не 3.14573982, а 3.14!



Спустя 7 минут, 54 секунды (12.12.2006 - 12:01) vasa_c написал(а):
Приведение к типу — parseInt()
Проверка формата — регулярки

Спустя 22 часа, 44 минуты, 50 секунд (13.12.2006 - 10:46) Gandjubas написал(а):
<!--QuoteBegin-vasa_c+--><div class='quotetop'>QUOTE(vasa_c)</div><div class='quotemain'><!--QuoteEBegin-->Приведение к типу — <b>parseInt()</b><br>Проверка формата — <b>регулярки</b><!--QuoteEnd--></div><!--QuoteEEnd--><br><b>parseInt()</b> не работает. Выдаёт NaN.<br>
 
cost = parseInt(document.getElementById('cost').value, 10);
 

Вводится число!

А с регулярками у меня всегда были проблемы:(
Может кто поможет?

Спустя 2 часа, 19 минут, 51 секунда (13.12.2006 - 13:06) vasa_c написал(а):
QUOTE
parseInt() не работает

Ну почему у всех работает, а у тебя нет?
Разбирайся что за число ты там вводишь. Если с дробной частью, тогда — parseFloat()

Спустя 17 минут, 36 секунд (13.12.2006 - 13:23) loginsan написал(а):
А может дело еще в символе-разделителе целой и дробной части - точка или запятая. На С++ знакомая проблема.

Спустя 2 минуты, 27 секунд (13.12.2006 - 13:26) AlexBB написал(а):
Все правильно.
parseInt действительно возращает NaN в случае, если не может выполнить преобразование ... т.е. введенная строка не число и не может быть преобразована в число
После parseInt проверь еще функцией isNaN

Спустя 1 час, 58 минут, 3 секунды (13.12.2006 - 15:24) Gandjubas написал(а):
Число я ввожу нормальное, целое, без точек и запятых и дробей!
Так эта фигня правильно написана?
cost = parseInt(document.getElementById('cost').value, 10);
И зачем мне проверять на isNaN? я на вводе данных уже принимаю только цифры!!! то есть Нецифры невведёшь!

Спустя 6 минут, 32 секунды (13.12.2006 - 15:30) AlexBB написал(а):
Если "не цифры не введешь" isNaN не нужен, но только как можно знать это наверняка?

Проверь alert(document.getElementById('cost').value);. Может это вообще что-то другое скармливается parseInt.

Спустя 2 минуты, 46 секунд (13.12.2006 - 15:33) AlexBB написал(а):
Да, кстати ... к элементам формы обращаемся
document.forms['имя формы'].elements['имя инпута'].value

Спустя 1 час, 2 минуты, 38 секунд (13.12.2006 - 16:36) Timok написал(а):
<!--QuoteBegin-Gandjubas+--><div class='quotetop'>QUOTE(Gandjubas)</div><div class='quotemain'><!--QuoteEBegin-->А с регулярками у меня всегда были проблемы:( Может кто поможет?<!--QuoteEnd--></div><!--QuoteEEnd--><br>что-то типа того?:<br>
function numeric() {
  var field = document.getElementById('field').value;
  var regexp = /^d+.?d*$/;
  if (! regexp.test(field)) {
    alert("Is not number!");
    return false;
  } else {
    regexp = /(d+).([d]{2})(d*)/;
    field = field.replace(regexp,'$1.$2');
    alert(field);
    return true;
  }
}
...
<input id="field" type="text" />
- выведет число в формате [любое_кол-во_цифр][точка][первые_2_цифры]

QUOTE(AlexBB)
Да, кстати ... к элементам формы обращаемся
document.forms['имя формы'].elements['имя инпута'].value

зачем? Такие методы вроде бы считаются давно устаревшими...

Спустя 18 минут, 22 секунды (13.12.2006 - 16:54) AlexBB написал(а):
QUOTE
зачем? Такие методы вроде бы считаются давно устаревшими...

Где это написано?
document.forms поддерживают все существующие браузеры, и пока еще встречаются ьраузеры без поддержки getElementById
хотя бесусловно число их сокращается

Во вторых, обращение через forms мне кажется семантически более понятным. И меньше шансов нарваться на конфликт одинаковых id.
Впрочем, на этой интерпретации я не настаиваю.

Спустя 38 минут, 21 секунда (13.12.2006 - 17:32) Timok написал(а):
Беру свои слова обратно. Конструкции такого типа оказываются входят в спецификацию DOM HTML (http://experiment.net.ru/dom/?f=html/). А метод getElementById относится к DOM JavaScript (http://experiment.net.ru/dom/?f=js/) Дело вкуса, короче :)

QUOTE(AlexBB)
Во вторых, обращение через forms мне кажется семантически более понятным. И меньше шансов нарваться на конфликт одинаковых id.

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

Спустя 17 часов, 31 минута, 12 секунд (14.12.2006 - 11:04) Gandjubas написал(а):
Всем большое спасибо!
Всё работает!

Вот за что я уважаю этот форум - так это за нормальное отношение и НЕлень написать пару строк кода!!!
;););)


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.