【问题标题】:Need to make the javascript function more refined [duplicate]需要使javascript函数更精细[重复]
【发布时间】:2017-09-01 05:44:11
【问题描述】:

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

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>

我试图进一步完善它,但当我改变它时,它由于某种原因停止工作。

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

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

所以如果可以请告诉我该怎么做也请记住我仍然在学习 JavaScript 而不是专业。

【问题讨论】:

  • 不能只使用输入类型number吗?
  • 请先搜索再询问
  • 我所做的所有搜索查询都无法让我知道我想要做什么,这就是我问的原因,它被标记为重复的好。
  • 如果您找不到与您的问题相匹配的答案,我们深表歉意。我建议您告诉我们是什么让您的问题与众不同。如果我将副本中的第一个答案应用于您的代码:function isNumber(evt) { evt = (evt) ? evt : window.event; var charCode = (evt.which) ? evt.which : evt.keyCode; if (charCode &gt; 31 &amp;&amp; (charCode &lt; 48 || charCode &gt; 57)) { document.getElementById("msg").innerHTML = "Numbers only"; return false; } document.getElementById("msg").innerHTML = ""; return true; }

标签: javascript jquery html


【解决方案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>

【讨论】:

    【解决方案2】:

    你可以检查

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-11
      相关资源
      最近更新 更多