Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.07.2012, 18:00
Интересующийся
Отправить личное сообщение для nraw Посмотреть профиль Найти все сообщения от nraw
 
Регистрация: 20.07.2012
Сообщений: 11

Как проигнорировать определенные символы при вводе в поле input?
У меня такой код
<html>
<head>
<title></title>
<script>
function a() {
var n = document.getElementById("tbnum").value * document.getElementById("tbnum2").value;
document.getElementById("result").innerHTML = n;
}

function check(obj) {
obj.value = obj.value.replace(/[^0-9]/g,'');
}
</script>
</head>
<body>
<input type="checkbox" value="asd" id="tb1">
<input type="text" id="tbnum" oninput="a()" onpropertychange="a()" onkeyup="check(this)">
<input type="checkbox" value="asd" id="tb2">
<input type="text" id="tbnum2" oninput="a()" onpropertychange="a()" onkeyup="check(this)">
<p>Результат: <span id="result">0<span><p>
</body>
</html>

Он подсчитывает произведение первого введенного числа на второе. И отменяет ввод не числовых символов. При этом если ввести в одно из полей не числовой символ (например букву), то в результат записывается NaN. Как сделать, чтобы в этом случае отображался просто 0?
Ответить с цитированием
  #2 (permalink)  
Старый 23.07.2012, 18:10
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

<html>
<head>
<title></title>
<script>
function a() {
var n = document.getElementById("tbnum").value * document.getElementById("tbnum2").value;
document.getElementById("result").innerHTML = n;
}

function check(obj) {
obj.value = obj.value.replace(/[^0-9]/g,'');
a();
}
</script>
</head>
<body>
<input type="checkbox" value="asd" id="tb1">
<input type="text" id="tbnum" onkeyup="check(this)">
<input type="checkbox" value="asd" id="tb2">
<input type="text" id="tbnum2" onkeyup="check(this)">
<p>Результат: <span id="result">0<span><p>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 23.07.2012, 18:14
Интересующийся
Отправить личное сообщение для nraw Посмотреть профиль Найти все сообщения от nraw
 
Регистрация: 20.07.2012
Сообщений: 11

Да, супер, спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 24.07.2012, 12:53
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

мне кажется что лучше использовать такую конструкцию

var elem = document.getElementById('sort');
      elem.onkeypress = function (){
      
      setTimeout(handler,0);
      }


вместо keyup
Ответить с цитированием
  #5 (permalink)  
Старый 24.07.2012, 17:06
Интересующийся
Отправить личное сообщение для nraw Посмотреть профиль Найти все сообщения от nraw
 
Регистрация: 20.07.2012
Сообщений: 11

А как запретить ввод 0 первым символом?
Ответить с цитированием
  #6 (permalink)  
Старый 24.07.2012, 17:13
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

nraw,
<html>
<head>
<title></title>
<script>
function a() {
var n = document.getElementById("tbnum").value * document.getElementById("tbnum2").value;
document.getElementById("result").innerHTML = n;
}

function check(obj) {
obj.value = obj.value.replace(/[^0-9]/g,'');
if (obj.value.length == 1){
 if (obj.value == "0") obj.value = ""; 
}
if ((obj.value - 0) <= 0) obj.value = "";
a();
}
</script>
</head>
<body>
<input type="checkbox" value="asd" id="tb1">
<input type="text" id="tbnum" onkeyup="check(this)">
<input type="checkbox" value="asd" id="tb2">
<input type="text" id="tbnum2" onkeyup="check(this)">
<p>Результат: <span id="result">0<span><p>
</body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 24.07.2012, 17:17
Интересующийся
Отправить личное сообщение для nraw Посмотреть профиль Найти все сообщения от nraw
 
Регистрация: 20.07.2012
Сообщений: 11

Спасибо!
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как разделять страницы при выводе отчета ilshat Events/DOM/Window 7 10.12.2009 10:24
Выполнение скрипта при нажатии Entet в текстовм поле Vlasssov Общие вопросы Javascript 4 23.08.2009 23:31
Как сделать, чтобы 2 ссылки отображались как hover при наведении мышкой на любую? Ava Элементы интерфейса 5 19.05.2009 23:24
Как запретить submit при пустом текстовом поле? Bad Request Events/DOM/Window 5 05.10.2008 15:40
Подбор вариантов при вводе. SergeiAzarov Общие вопросы Javascript 1 06.09.2008 15:09