2017-04-06 4 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') {} 
関連する問題