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

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

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

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

Q&A

解決済

2回答

1987閲覧

フォネティックコードを用いたプログラム

banbook18

総合スコア13

JavaScript

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

0グッド

0クリップ

投稿2016/10/11 09:03

編集2016/10/11 13:40

イメージ説明
イメージ説明
イメージ説明

文字列をフォネティックコードに変換するプログラムを書いています。
一応、はじめに自分で作ってみて出力してみたのですが、文字に対応するフォネティックコードが表示されません。
デベロッパーツールで確認したところ、moji is not a functionと表示されました。
例であるプログラムとほぼ変わらないのですが、どこでつまずいているのかわからない状態です。
お願いいたします。

追記:画像のコードを追加し、think49様の指摘の通りに変更して幾つか追加してます。

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script type="text/javascript"> function outputMoji(){ var n = document.inputform.moji.value; var str = new String("n"); var code = {a:"Alpha", b:"Bravo", c:"Charlie", d:"Delta", e:"Echo", f:"Foxtrot", g:"Golf", h:"Hotel", i:"India", j:"Juliet", k:"Kilo", l:"Lima", m:"Mike", n:"November", o:"Oscar", p:"Papa"}; var a = ""
for(var i = 0; i < str.length; i++){ //if(j.macth(/code[j]/i)){ //document.write("code[j]"); //} a = code[str.charAt[i]]; } document.getElementById("result").textContent = a; } </script> <title>文字列の変換</title>
</head> <body onload=""> <form name="inputform"> <p> 文字の入力:<input type="text" name="moji"><br> <input type="button" onclick="outputMoji()" value="入力" > </p> </form> <p id="result"> 文字を入力してください。 </p> </body> </html>

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

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

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

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

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

think49

2016/10/11 09:27

画像からテキストを起こすのは大変なのでHTML/CSS/JSをmarkdown記法で追記頂けると助かります。https://teratail.com/help
banbook18

2016/10/11 11:46

すみません、画像のコードを追加させていただきます。
guest

回答2

0

ベストアンサー

moji()<input type="text" name="moji"> を参照している事が原因のようです。
関数名を outputMoji に変更すれば ReferenceError は解消されます。
が、document.write が期待通りに動作しない為、textContent 辺りで代替する必要があります。

Re: banbook18 さん

投稿2016/10/11 12:15

think49

総合スコア18164

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

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

think49

2016/10/11 12:17

というか、document.write は削除していいですね。innerHTMLはtextContentに書き換えた方がいいと思いますが…。
banbook18

2016/10/11 12:55 編集

関数名を'outputMoji()'に変更し、'<input type="buttom" onclick="outputMoji()" value="入力">'に変更しました。 また、'a = document.write(str.charAt[i] + "<br>");'から'a = str.charAt[i]'に変更、'innnerHTML'を'textContent'に変更しています。 ですが、web画面ではstrとしか表示されません…。
think49

2016/10/11 12:57

document.write("str"); も削除してください。
banbook18

2016/10/11 13:42 編集

すみません、テキストボックスに文字を入れて入力ボタンを押すと、今度は下の"文字を入力してください"が消えてしまい、フォネティックコードに変換されたものが表示されないです。 なんどもすいません…、'document.write("str")'は削除しています。 a = str.charAt[i]となっており、要素に対応する連想配列を表示するようになっていなかったので、a = code[str.charAt[i]]と変更しています。
guest

0

var str = new String("n")部分の"n"からnへ変え、a = code[str.charAt[i]];をa += code[str.charAt(i)];変更したら無事実行できました。そもそも文法を間違えていたようです…。

とても早い対応でしたthink49様をベストアンサーにしたいと思います。ありがとうございます!

投稿2016/10/11 13:59

banbook18

総合スコア13

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問