需要使javascript功能更精致

时间:2017-04-06 09:25:55

标签: javascript jquery html

正如标题所说,我已经写了一个小代码来检测输入的字符是数字还是字母,下面是脚本代码。



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>
      	  <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>
&#13;
&#13;
&#13;

我试图对此进行更多改进,但是当我改变它时,由于某种原因它会停止工作。

我想要做的不仅是提示信息,还要清除文本框中输入的任何字符,只允许输入数字。

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

所以如果可以,请告诉我该怎么做也记住我还在学习JavaScripting还不是专业人士。

2 个答案:

答案 0 :(得分: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">
	<input id="child" type="textarea" />
</div>

答案 1 :(得分:1)

您可以查看

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