質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

4214閲覧

テキストボックスの入力値を「半角数字だけ」かつ「1から100まで」に限定させる方法

maronica

総合スコア16

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/02/23 22:36

編集2019/02/24 01:07

###実現したいこと
タイトルの通りですが、半角数字だけ入力可能で、その数字を1から100までに限定するjQueryについて教えてください。
###該当のソースコード
こちらのテキストボックスです。

html

1<input type="text" id="number" min="1" max="100"/>

###試したこと
コメントアウトしてあるように、キーボードの番号で値を判定し、maxとminで範囲を判定している流れです。

しかし、ひらがなが入力できてしまうことと、数字が入力できないことが問題で、実現したいことができません。

jquery

1$('#number').on('input keyup keydown', function(e) { 2 3 // 入力できる価 4 var k = e.keyCode; 5 // 0~9, テンキ―0~9, backspace, delete, →, ←, を許可 6 if(!((k >= 48 && k <= 57) || (k >= 96 && k <= 105) || k == 8 || k == 46 || k == 39 || k == 37)) { 7 return false; 8 } 9 10 // 入力できる範囲 11 var that = $(this); 12 var max = that.attr("max"); 13 var min = that.attr("min"); 14 var val = that.val(); 15 if( val >= max || val <= min ){ 16 return false; 17 } 18 19}); 20

JavascriptではなくjQueryで知りたいです。お手数おかけしてすみませんが、宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoshinavi

2019/02/24 02:02

「HTML4.01まで」が対象で「HTML5」は除外なのでしょうか?
maronica

2019/02/24 02:14

いいえ。そんなことはありません。
yoshinavi

2019/02/24 02:19

「asahina1979」さんの回答のように<input>は、type属性で指定の方が、HTMLのみで制御出来ますので簡単かと思います。
maronica

2019/02/24 02:23

ありがとうございます。
guest

回答2

0

?名称で制御されるのではなく type で制御が変わるんですが・・・・・

<input type="number" min="1" max="100">

投稿2019/02/23 22:58

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maronica

2019/02/23 23:50 編集

半角数字だけ入力可能で、その数字を1から100までに限定したいのでdすが、typeの変更は特にその目的に寄与しないですよね。
Take_it

2019/02/24 00:11 編集

type=number が、半角数字(というか数値データ)に限定するためのものですよ。 むしろそれだけやっとけばscriptで制御する必要なんて(現行ブラウザが相手なら)ない。 というかinput type でググれば。 正直ここで質問するレベルの話ではないですよ。
退会済みユーザー

退会済みユーザー

2019/02/24 01:54

古いブラウザ ( IE 6 for XP SP3)ででもテストしてるのですかね?
guest

0

ベストアンサー

HTML5や、熟考した者ら、目に涙

javascript

1document.getElementById ('inp').addEventListener ('input', (a)=> { 2 let e=a.target,v=e.value.replace(/^\s|^0|\s$|\D/g,''); 3 [,e.value]=/^((?!100)[1-9][0-9]|100)([0-9]+)/.exec(v)||[,v]; 4}, false); 5</script>

投稿2019/02/24 00:27

編集2019/02/24 00:38
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maronica

2019/02/24 01:08

ありがとうございます。すみません、jQueryで知りたかったです…
FKM

2019/02/24 03:50 編集

jQueryはこのaddEventListenerを定義化したメソッドにしているだけですよ。なので $('#inp').input(… に変えるだけです。 また、JQueryはjavascriptのライブラリに過ぎないので、普通にaddEventListenerは使えます。
maronica

2019/02/26 23:12 編集

ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問