2017-04-06 37 views
-1

正如标题所说,我已经写了一个小代码段来检测输入的字符是数字还是字母,下面是脚本代码。需要使JavaScript功能更精致

function checkNum(i) { 
 

 
    //language=JSRegexp 
 
    var txt = i.value; 
 

 
    if (isNaN(txt)){ 
 
     document.getElementById("msg").innerHTML = "Numbers only"; 
 
     return false 
 
    }else{ 
 
     return true 
 
    } 
 

 
}
 <label for="volume">Volume:</label> 
 
     \t <input type="text" name="volume" id="volume" size="4" onkeyup="checkNum(this)" style="margin-left:23px;"> 
 
     <label for="noPl" style="margin-left: 35px;">No. of Product Lines:</label> 
 
      <input type="text" name="noPl" id="noPl" size="4" onkeyup="checkNum(this)"> 
 

 
<div id="msg"></div>

我试图完善这一更但是当我改变这一点,停止出于某种原因的工作。

我希望这样做不仅提示消息,而且清除文本框中输入的任何字符,只允许输入数字。

在当前状态下,它只提示用户不要输入字母。我在这里尝试了许多其他提到的方法,但在此之前他们都没有成功。

所以,如果可以请赐教我该怎么做也请记住,我仍然在学习JavaScripting不亲。

+1

你能不能只用输入型'number'? – George

+2

请先询问 – mplungjan

+0

我没有搜索到的查询能够给我一个想法,我想做什么,这就是为什么我问,它被标记为重复的好。 – Sand

回答

1

$(function() { 
 
    $('#staticParent').on('keydown', '#child', function(e){-1!==$.inArray(e.keyCode,[46,8,9,27,13,110,190])||/65|67|86|88/.test(e.keyCode)&&(!0===e.ctrlKey||!0===e.metaKey)||35<=e.keyCode&&40>=e.keyCode||(e.shiftKey||48>e.keyCode||57<e.keyCode)&&(96>e.keyCode||105<e.keyCode)&&e.preventDefault()}); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<div id="staticParent"> 
 
\t <input id="child" type="textarea" /> 
 
</div>

1

您可以检查

if(typeof txt == 'number' || typeof txt == 'string') {}