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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

5回答

1376閲覧

配列のなかの単語が何番目なのかを,indexOfを用いて,取得したいのにできない(-1という返答が返ってくる)。

kagar

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/10/04 12:25

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

テキストボックスに,バナナと入力したときに,window.alert(number)により,アラートで「1」と帰ってきてほしいのに,「ー1」となってしまう。

該当のソースコード

javascript

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4<meta charset="UTF-8"> 5<title>サンプル</title> 6</head> 7<body> 8 9 10<p> 11<input type="text" id="nameText"> 12<input type="button" value="Check" id="checkButton"> 13</p> 14 15<p id="msg"></p> 16<p id="mm"></p> 17 18<script> 19function butotnClick(){ 20 msg.innerText = get.value; 21 window.alert(number); 22} 23 24//コメントに対する返答方法 25var value=['リンゴ', 'バナナ', 'メロン']; 26 27//入力された内容をゲット 28var get=document.getElementById("nameText"); 29 30//ゲットされた内容の中のがバリューの何番目かを確かめる 31var number=value.indexOf(get.value); 32 33//pを取得する 34var msg = document.getElementById('msg'); 35 36//ボタン自体を取得 37var checkButton = document.getElementById('checkButton'); 38 39//ボタンをクリックしたときに発動させること 40checkButton.addEventListener('click', butotnClick); 41 42</script> 43 44</body> 45</html> 46 47

試したこと

var number=value.indexOf(get.value);
のget.valueの部分を,nameText.valueにするなど

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

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

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

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

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

guest

回答5

0

//入力された内容をゲット
var get=document.getElementById("nameText");

//ゲットされた内容の中のがバリューの何番目かを確かめる
var number=value.indexOf(get.value);

をfunction butotnClickの中にいれると,解決できました。

投稿2021/10/04 13:19

kagar

総合スコア0

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

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

0

javascript

1function butotnClick(){ 2 msg.innerText = get.value; 3 var number=value.indexOf(get.value); 4 window.alert(number); 5}

butotnClick()内でvalueからget.valueをチェックしないと入力後の文字はチェックできません

投稿2021/10/04 12:44

yambejp

総合スコア116724

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

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

0

JavaScript

1var number=value.indexOf(get.value);

この部分が実行されるのがボタンクリックした時ではなくイベント登録する前だから、『バナナ』と入力する前にnumberは**-1**になっています。

投稿2021/10/04 12:43

ishina_yum

総合スコア509

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

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

0

とりあえず・・・

ページが読み込まれてスクリプトの実行が始まります。
そこでユーザーが何もアクションしていなくても

JavaScript

1var get=document.getElementById("nameText"); 2var number=value.indexOf(get.value);

が実行されています。
当然get.valueは空ですよね。

ボタンが押されたときに値を取得するように制御する必要があるということです。


リクエストがあったので…

HTML

1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>サンプル</title> 6 </head> 7 <body> 8 9 <p> 10 <input type="text" id="nameText"> 11 <input type="button" value="Check" id="checkButton" onclick="buttonClick();"> 12 </p> 13 14 <p id="msg"></p> 15 <p id="mm"></p> 16 17 <script> 18 const valueList = ['リンゴ', 'バナナ', 'メロン']; 19 const nameText = document.getElementById("nameText"); 20 const msg = document.getElementById('msg'); 21 const mm = document.getElementById('mm'); 22 function buttonClick() { 23 let inputValue = nameText.value; 24 msg.innerText = inputValue; 25 mm.innerText = valueList.indexOf(inputValue); 26 } 27 </script> 28 29</body> 30</html>

投稿2021/10/04 12:43

編集2021/10/04 14:02
itagagaki

総合スコア8402

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

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

kagar

2021/10/04 13:11

もしよろしかったら,その制御する方法というのを教えていただけないでしょうか。
itagagaki

2021/10/04 14:02

回答に追記しました。
guest

0

よくあるのは、文字列の前とかあとにスペースが入っているとか、改行コードが入ってるとか。
そこらへんチェックしてみよう

投稿2021/10/04 12:28

y_waiwai

総合スコア88042

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問