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

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

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

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

Q&A

解決済

2回答

1020閲覧

onsubmit=function(){について

ktg555

総合スコア16

JavaScript

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

0グッド

0クリップ

投稿2022/07/07 12:50

JavaScriptの初心者です。

<script> 'use stirict' document.getElementById('form').onsubmit=function(event){ event.preventDefault(); const search = document.getElementById('form').world.value; document.getElementById('output').textContent = `「${search}」の検索中.....`; }; </script>

上のような文章がありました。document.getElementById('form').onsubmit=function(event){の部分だけの質問です。
このfunctionの使い方を教えてください。
普通の関数であればどこかに、
function ファンクション名(変数){
具体的な処理
}
があり、これをfunction(event)のところで、実行するのかとおもいましたが、function ファンクション名(変数){この部分はありません。
function(event)は、普通の関数とは、違う使い方をするのかもしれないと思い質問しました。
どのような使い方をするか、教えてほしいです。
また、引数のeventは、どういう意味でしょうか?普通ならここに、数字(800)とかが入るのかなと思っています。

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

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

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

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

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

itagagaki

2022/07/07 12:52

「無名関数」を調べましょう。
退会済みユーザー

退会済みユーザー

2022/07/07 13:43

「JavaScript コールバック関数」と「javascript event」をキーワードにググってみましょう。
ktg555

2022/07/07 13:45

ありがとうございます。 調べます。
m.ts10806

2022/07/07 21:59

調べた結果で解決したら顛末を自身で投稿して解決済みにしてください。
Lhankor_Mhy

2022/07/08 01:13

↑MDN はリファレンスとしては優れてますが、チュートリアルはいまいちな感じがしますからね…… 基本的なことの話の場合は、JavaScript Primer や JavaScript.info を紹介するようにしてます。
guest

回答2

0

ベストアンサー

いい機会(?)だから、調べ方の一手法を披露する。

document.getElementById()
Document.getElementById() - Web API | MDN によると
Element - Web API | MDN オブジェクトを返すとわかる。

Element は Document が継承するオブジェクトの中にあるすべての要素オブジェクト(すなわち、要素を表現するオブジェクト)が継承する、もっとも一般的な基底クラスです。すべての種類の要素の共通するメソッドとプロパティのみを持ちます。もっと具体的なクラスが Element を継承しています。

ちょっとむずかしいが、Documentの下でwebブラウザ上に現れている要素オブジェクトの基底オブジェクトなので、様々な要素オブジェクトにアクセスするのに適していると。
実態はElementをさらに継承したものになっていると思うけどね。
継承したものとして、HTMLElement インターフェイスを備えたものや、SVGElement インターフェイスを備えてものがあると、続けて説明がある。
さて、Elementオブジェクトのプロパティ、メソッド、イベントなど調べると、onsubmitやsubmitがないことに気づく。
Elementオブジェクトでは実装されていないようだ。

次は HTMLElement - Web API | MDN を調べる。
HTMLElement インターフェイスでのプロパティ、メソッド、イベントなど調べるとここにもない。
でも、HTMLElement インターフェイスを継承した HTMLFormElement インターフェイス があることに気づく。
HTMLFormElement - Web API | MDN でも同様にプロパティ、メソッド、イベントなど調べると
HTMLFormElement: submit イベント - Web API | MDN として解説がある。

onsubmitについては、
<form>: フォーム要素 - HTML: HyperText Markup Language | MDN もついでに見ておく。
さらには、グローバル属性 - HTML: HyperText Markup Language | MDN も見ておく。
onナニナニはイベントハンドラー属性と呼ばれると。
イベントの扱い (概要) - イベントリファレンス | MDNにて、イベントの取り回しの説明がある。
インラインイベントハンドラー — 使っちゃだめともある。
ちゃんと、

<script>要素の中で定義された関数を起動していますが、直接JavsScript そのものを属性の中に入れる事もできます。

とあるから無名functionをその場に書いちゃうのも一応できる話だなと。

=function(event){については
Function - JavaScript | MDN
関数式 - JavaScript | MDN
も目を通すと、なるほどそういう書き方もできるのか、ってわかるはず。

こうやって芋づる式に調べていくと力がつくと思うんですが。(あくまで個人的な主観

投稿2022/07/08 00:58

編集2022/07/08 01:01
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

function(event)は、普通の関数とは、違う使い方をするのかもしれないと思い質問しました。
どのような使い方をするか、教えてほしいです。

コールバックなど、関数を渡すために使うことが多いです。

askの引数の showOk と showCancel は コールバック関数 または単に コールバック と呼ばれます。
このアイデアは、渡した関数が必要に応じて後から “コールバック” されることを期待するというものです。
関数式


また、引数のeventは、どういう意味でしょうか?

仮引数です。コールバックされる時に、実引数が渡されて呼び出されます。

仮引数とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

投稿2022/07/08 01:07

Lhankor_Mhy

総合スコア37426

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問