2010-04-21 4 views
3

Текстовое поле должно принимать onli десятичные значения в javascript. Никаких других специальных символов. Он не должен принимать «.». больше чем единожды. Напр. он не должен принимать 6 ..... 12 Может кто-нибудь помочь ???Десятичное число в javascript

ответ

0

Вы можете использовать метод Regex.test:

if (/\d+(\.\d{1,2})/.test(myTextboxValue)) //OK... 
0

Если вы имеете в виду вы не хотите ничего, кроме целого или десятичного быть набраны в поле, вы должны смотреть на значение как каждая клавиша нажата. Чтобы перехватить вставленный ввод, проверьте его снова на change.

textbox.onkeyup=textbox.onchange=function(e){ 
    e= window.event? event.srcElement: e.target; 
    var v= e.value; 
    while(v && parseFloat(v)!= v) v= v.slice(0, -1); 
    e.value= v; 
} 
0

Возможно, вы хотите проверить ввод формы перед отправкой на сервер. Вот пример:

<html> 
    <head> 
     <title>Form Validation</title> 
     <script type="text/javascript"> 
     function validate(){ 
      var field = document.getElementById("number"); 
      if(field.value.match(/^\d+(\.\d*)?$/)){ 
       return true; 
      } else { 
       alert("Not a number! : "+field.value); 
       return false; 
      } 
     } 
     </script> 
    </head> 
    <body> 
     <form action="#" method="post" onsubmit="return validate();"> 
     <input type="text" id="number" width="15" /><br /> 
     <input type="submit" value="send" /> 
     </form> 
    </body> 
</html> 
0

Я просто взбивал это. Полезно?

<html> 
<head> 
<script type="text/javascript"> 
function validNum(theField) { 
    val = theField.value; 
    var flt = parseFloat(val); 
    document.getElementById(theField.name+'Error').innerHTML=(val == "" || Number(val)==flt)?"":val + ' is not a valid (decimal) number'; 
} 
window.onload=function(){ 
    validNum(document.getElementById('num')); 
} 
</script> 
</head> 
<body> 
<form> 
<input type="text" name="num" id="num" 
onkeyup="return validNum(this)" /> <span id="numError"></span> 
</form> 
</body> 
</html>