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

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

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

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

Q&A

解決済

2回答

2746閲覧

alertが表示されない。

退会済みユーザー

退会済みユーザー

総合スコア0

jQuery

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

0グッド

0クリップ

投稿2017/10/20 10:20

編集2017/10/20 11:44

###前提・実現したいこと
alertが表示されないので、ご教授いただけませんか?

###該当のソースコード

jQuery

1<head> 2<script type="text/javascript" src="jquery-3.2.1.min.js"></script> 3</head> 4 5<body> 6<form name="check" action="sample1.html" method="post"> 7 <button type='submit' name='myaction' value='download'>ダウンロード</button> 8</form> 9 10 11<script type="text/javascript"> 12$(function() 13{ 14 alert("test1"); 15 16 $("#myaction").on("click",function(){ 17 { 18 alert("test2"); 19 }); 20}); 21</script>

###試したこと

下記のようにコメントアウトするとtest1のalertが表示されます。

jQuery

1<script type="text/javascript"> 2$(function() 3{ 4 alert("test1"); 5 6 //$("#myaction").on("click",function(){ 7 //{ 8 //alert("test2"); 9 //}); 10}); 11</script>

###追記。
今度はクリック処理でalertが出ないです。今度はカッコの数は合ってそうです。

jQuery

1<script type="text/javascript"> 2$(function() 3{ 4 5 $("#myaction").on("click",function() 6 { 7 alert("test2"); 8 }); 9}); 10</script>

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

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

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

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

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

guest

回答2

0

ベストアンサー

{ が一つ多いような気がしますが?

$("#myaction").on("click",function(){ { alert("test2"); });

投稿2017/10/20 10:35

編集2017/10/20 10:38
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2017/10/20 11:46

ご回答ありがとうございます。 { の数が1個多かったです。 すみません、再びクリック処理の方でalertが出なくなりました。
退会済みユーザー

退会済みユーザー

2017/10/20 12:17

name='myaction' ⇒ id='myaction' に変更してください。
退会済みユーザー

退会済みユーザー

2017/10/20 12:48

ご回答ありがとうございます。 できました。 id属性は重複してはいけないのですね。 name属性ってあまり使わないですか? PHPで受け取るときもid属性で取得できますか?
退会済みユーザー

退会済みユーザー

2017/10/20 13:51

jQuery のセレクタで # の意味をググるなりして調べてください。「PHPで受け取るとき」というのは意味が分かりませんが、少なくともこの質問に書いてある jQuery / JavaScript の話に限っては何の関係もないと思うのですが?
退会済みユーザー

退会済みユーザー

2017/10/20 13:57

name 属性はもちろん使いますよ。form を送信するときを考えてみてください。今回の話は、それとは関係なく jQuery のセレクタで # がどういう意味を持つかです。何かと混同してませんか?
guest

0

字下げスタイルが混同しているのがミスの原因でしょうね。

javascript

1function hoge(){ 2 //処理 3}

これはK&Rスタイルというそうです。※

私はこのスタイルが好きです。

他に

javascript

1function hoge() 2{ 3 //処理 4}

というBSDスタイルなるものもあるそうですね。

あなたのコードはどちらでしょうか?今一度確認してください。

そうすればSurferOnWww様がおっしゃるように、括弧の数がおかしいことに気づくはずです。

どちらかのスタイルに統一しましょう。

※関数の{}はBSDスタイルみたいにするそうなので、正確には違うのかもしれませんが。。(^ ^;

今更ながら、コメントに対し追記:

SurferOnWww様のおっしゃるようにname="myaction"ではなくid="myaction"にする必要がありますね。またはbutton要素が一つしかないならば、下記のように$("button")を指定することでも設定できますが、classかidで指定する方が無難でしょう。

javascript

1$(function(){ 2 alert("test1"); 3 4 $("button").on("click",function(){ 5 alert("test2"); 6 }); 7});

○備考

  • $("#hoge") -> id="hoge"となった要素を取得
  • $(".hoge") -> class="hoge"となった要素を取得
  • $("hoge") -> hoge要素を取得

PHPについては私は全然なのでなんとも言えませんが、フォームを送るときには基本的に値を送信したいフォーム部品にはname属性が必要だったと記憶しています。

javascriptでAjax等を使ったりして値を送信する場合はその限りではなかったはずです。

投稿2017/10/20 11:17

編集2017/10/20 12:58
namnium1125

総合スコア2043

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

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

退会済みユーザー

退会済みユーザー

2017/10/20 11:46 編集

ご回答ありがとうございます。 { の数が1個多かったです。 すみません、再びクリック処理の方でalertが出なくなりました。
namnium1125

2017/10/20 12:54

無事解決してよかったです。一応追記しました。
退会済みユーザー

退会済みユーザー

2017/10/20 12:58

ご回答ありがとうございます。 PHP側の取得ではname属性が必要となると、id属性とname属性の2つが必要ということですね。 ボタンが2つ以上の場合、idは重複しないようにして、name属性は重複してもいいということですね。
namnium1125

2017/10/20 13:07 編集

ラジオボタン等の複数の部品からなるものはグループ化のために同一のname属性を指定しますが、基本的にname属性も重複してはいけなかったような。。? 断言はできませんが分けた方が無難だと思います。 またjavascriptの方でもdocument.getElementsByName("hoge")[0];のように書けばname属性のみで要素を取得できますが、idやclassを指定する方がいいと思います。
退会済みユーザー

退会済みユーザー

2017/10/20 13:11

ご回答ありがとうございます。 グループ化以外では、name属性も分けたほうが無難なんですね。 $("#hoge")の書き方で取得したいので、idを使っていこうと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問