Jscript - 在仅数字文本框上获取值之前和之后

时间:2015-02-23 03:42:47

标签: javascript dom javascript-events

我有这个函数可以验证我的文本框中是否输入了数字:

function mudavalor(sender, event) {
    var stringAntesDepois = sender.value;
    if (event.keyCode > 47 && event.keyCode < 58) {
        stringAntesDepois += String.fromCharCode(event.keyCode);
    }

    sender.value = "";
    sender.value = stringAntesDepois;
}

致电:

<input class="texto" runat="server" onkeydown="mudavalor(this,event)" id="Text1" type="text" />

问题是,奇怪的是,如果我没有在IF线之前放置“alert(event.keyCode)”,它就不起作用了。如果我这样做:

function mudavalor(sender, event) {
    var stringAntesDepois = sender.value;
    alert(event.keyCode);
    if (event.keyCode > 47 && event.keyCode < 58) {

然后就可以了。

我需要这样做:

1 - 检查键入的键是否为0-9

之间的数字

2 - 更新“Text1”字段(如果它是数字

3 - 在“Text1”字段上进行任何更改后,我需要将其值分配给标签

PS:我不能使用HTML5的“数字”类型

欢迎任何帮助

1 个答案:

答案 0 :(得分:0)

我猜你想要这样的东西:

http://jsfiddle.net/snr00qng/

您应该使用event.preventDefault()忽略键,或者说忽略默认行为。

这是你应该做的:

function mudavalor(){
   if(event.keyCode>=48 && event.keyCode<=57){
      document.getElementById('txt').textContent+= String.fromCharCode(event.keyCode);
   }
   else
     event.preventDefault();
}