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

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

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

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

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

998閲覧

javascriptで結果を表示したい

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2019/11/14 21:44

編集2019/11/15 06:43

前提・実現したいこと

まず、「天気」という文字列をフォームに入れると、きまった返事が返ってくるのようなことをしていて、「天気」のうちの「天」だけが入力された時に、もしかして...と表示したいのです。

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

「天気」のうちの「天」だけを入力して、もしかして...とでましたが、リンクをクリックしても動きませんでした。

エラーメッセージ(エラーはでませんでした)

該当のソースコード

javascript

1function tenki_search() { 2 target2 = document.getElementById('search'); 3 target2.innerHTML = '<iframe id="forecast_embed" type="text/html" frameborder="0" height="245" width="100%" src="http://forecast.io/embed/#lat=35.689487&lon=139.691706&name=Tokyo&units=si"></iframe>'; 4} 5 6function hanasu() { 7 target = document.getElementById('hennji'); 8 textbox1 = document.forms.fm2.id_textbox1.value; 9 var tenki1 = '天気'; 10 var tenki2 = '今日の天気'; 11 var tenki3 = 'てんき'; 12 var search_tenki1 = '天'; 13 var search_tenki2 = '気'; 14 if (textbox1 == tenki1 || textbox1 == tenki2 || textbox1 == tenki3) { 15 target.innerHTML = '<iframe id="forecast_embed" type="text/html" frameborder="0" height="245" width="100%" src="http://forecast.io/embed/#lat=35.689487&lon=139.691706&name=Tokyo&units=si"></iframe>'; 16 } else if (textbox1 == search_tenki1 || textbox1 == search_tenki2) { 17 target.innerHTML = '<p>もしかして<a oncrick="tenki_search()" style="background-color :#ffff00;" href="javascript:void(0);">今日の天気</a></p>'; 18 } else { 19 target.innerHTML = '<p>お答えできません。</p>'; 20 } 21} 22

html

1<FORM name="fm2"> 2 <div class="cp_iptxt"> 3 <input size="20" type="text" name="Z" style="background:#ffffff;" name="textbox" id="id_textbox1"> 4 <input type="button" value="送信" onclick="hanasu()" class="btn btn-primary"> 5 <p>返事</p><br> 6 <div id="hennji">ここに返事が表示されます。</div> 7 <div id="search_1"></div> 8 </div> 9 </div> 10 </FORM>

補足情報

googlechromeで試しました。

説明が足りないところがあるかもしれませんがよろしくお願いします。

---追記

javascript

1function tenki_search() { 2 target2 = document.getElementById('search'); 3 target2.innerHTML = '<iframe id="forecast_embed" type="text/html" frameborder="0" height="245" width="100%" src="http://forecast.io/embed/#lat=35.689487&lon=139.691706&name=Tokyo&units=si"></iframe>'; 4} 5 6function hanasu() { 7 target = document.getElementById('hennji'); 8 textbox1 = document.forms.fm2.id_textbox1.value; 9 var tenki1 = '天気'; 10 var tenki2 = '今日の天気'; 11 var tenki3 = 'てんき'; 12 var search_tenki1 = '天'; 13 var search_tenki2 = '気'; 14 if (textbox1 == tenki1 || textbox1 == tenki2 || textbox1 == tenki3) { 15 target.innerHTML = '<iframe id="forecast_embed" type="text/html" frameborder="0" height="245" width="100%" src="http://forecast.io/embed/#lat=35.689487&lon=139.691706&name=Tokyo&units=si"></iframe>'; 16 } else if (textbox1 == search_tenki1 || textbox1 == search_tenki2) { 17 target.innerHTML = '<p>もしかして<a onclick="tenki_search()" style="background-color :#ffff00;" href="javascript:void(0);">今日の天気</a></p>'; 18 } else { 19 target.innerHTML = '<p>お答えできません。</p>'; 20 } 21}

html

1<!DOCTYPE html> 2 3<head> 4 <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 5 <script type="text/javascript" src="../js/main.js"></script> 6 <title> わーい</title> 7</head> 8 9<body> 10 11 <FORM name="fm2"> 12 <div class="cp_iptxt"> 13 <input size="20" type="text" name="Z" style="background:#ffffff;" name="textbox" id="id_textbox1"> 14 <input type="button" value="送信" onclick="hanasu()" class="btn btn-primary"> 15 <p>返事</p><br> 16 <div id="hennji">ここに表示されます。</div> 17 <!--<div id="hennji"> 18 --> 19 <div id="search_1"></div> 20 </div> 21 </div> 22 </FORM> 23 24 <!-- --------------------------------- --> 25</body>

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

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

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

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

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

azuapricot

2019/11/15 06:47

リンクをクリックしても動きませんでした とありますが、リンクをクリックした時どうしたいんですか? やりたいことが書かれていないので答えようがないです
guest

回答1

0

ベストアンサー

oncrick

onclick です。
この手のものはリファレンスで仕様を確認しましょう。

あと、サジェスト機能のようなものはパターンに照らし合わせる完全一致ではなく部分一致にしたほうが良いです。今回の場合だと正規表現が必要になりますね。

投稿2019/11/14 21:52

m.ts10806

総合スコア80850

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

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

退会済みユーザー

退会済みユーザー

2019/11/15 06:23

変なところで間違えていてすみません。 onclickに変えても動きませんでした。 どうすればよろしいでしょうか?
m.ts10806

2019/11/15 06:27

質問に変更後のコードと結果確認したものを追記いただけますか? 結果確認とはブラウザ開発ツールのコンソールにエラーが出てないかとか、「動かない」だけではなく、「起きている現象」を確認していただくことです
退会済みユーザー

退会済みユーザー

2019/11/15 06:38

HTML <!DOCTYPE html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="../js/main.js"></script> <title> わーい</title> </head> <body> <FORM name="fm2"> <div class="cp_iptxt"> <input size="20" type="text" name="Z" style="background:#ffffff;" name="textbox" id="id_textbox1"> <input type="button" value="送信" onclick="hanasu()" class="btn btn-primary"> <p>返事</p><br> <div id="hennji">ここに表示されます。</div> <!--<div id="hennji"> --> <div id="search_1"></div> </div> </div> </FORM> <!-- --------------------------------- --> </body> javascript function tenki_search() { target2 = document.getElementById('search'); target2.innerHTML = '<iframe id="forecast_embed" type="text/html" frameborder="0" height="245" width="100%" src="http://forecast.io/embed/#lat=35.689487&lon=139.691706&name=Tokyo&units=si"></iframe>'; } function hanasu() { target = document.getElementById('hennji'); textbox1 = document.forms.fm2.id_textbox1.value; var tenki1 = '天気'; var tenki2 = '今日の天気'; var tenki3 = 'てんき'; var search_tenki1 = '天'; var search_tenki2 = '気'; if (textbox1 == tenki1 || textbox1 == tenki2 || textbox1 == tenki3) { target.innerHTML = '<iframe id="forecast_embed" type="text/html" frameborder="0" height="245" width="100%" src="http://forecast.io/embed/#lat=35.689487&lon=139.691706&name=Tokyo&units=si"></iframe>'; } else if (textbox1 == search_tenki1 || textbox1 == search_tenki2) { target.innerHTML = '<p>もしかして<a onclick="tenki_search()" style="background-color :#ffff00;" href="javascript:void(0);">今日の天気</a></p>'; } else { target.innerHTML = '<p>お答えできません。</p>'; } } です。 コンソールにエラーが出ていました。コピーしたものを書いておきます。 Uncaught TypeError: Cannot set property 'innerHTML' of null at tenki_search (main.js:10) at HTMLAnchorElement.onclick (s.html:1) main.jsはすべてのjavascriptコードのファイルです。 s.htmlはすべてのHTMLコードのファイルです。 よろしくお願いします。
m.ts10806

2019/11/15 06:39

えっと「質問に追記」お願いします。 コメント欄ではマークダウン使えませんし、他のユーザーの目にもつきにくいです
退会済みユーザー

退会済みユーザー

2019/11/15 06:41

ごめんなさい。
m.ts10806

2019/11/15 06:44

怒っているわけではないので謝る必要はありませんよ。あくまで淡々と問題解決のことだけを考えていきましょう
退会済みユーザー

退会済みユーザー

2019/11/15 06:47

質問を更新しました。
m.ts10806

2019/11/15 06:50

> document.getElementById('search'); と書かれていますがhtml上にはsearchという名前のidはないように見受けられます。
退会済みユーザー

退会済みユーザー

2019/11/15 10:43

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問