Как проигнорировать определенные символы при вводе в поле 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? |
<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> |
Да, супер, спасибо!
|
мне кажется что лучше использовать такую конструкцию
var elem = document.getElementById('sort'); elem.onkeypress = function (){ setTimeout(handler,0); } вместо keyup |
А как запретить ввод 0 первым символом?
|
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> |
Спасибо!
|
Часовой пояс GMT +3, время: 08:13. |