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

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

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

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

HTML

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

解決済

JavaScriptで何かがおかしい

a-_.
a-_.

総合スコア0

JavaScript

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

HTML

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

1回答

0評価

0クリップ

1446閲覧

投稿2016/08/24 05:19

編集2022/01/12 10:58

・ラジオボタン「投稿」がチェックされている状態の場合は非表示
・「更新」「削除」がチェックされた場合のみ表示
・未チェックのままボタンを押下した場合はエラー(javascript:alert)を表示し、投稿を中止
という条件をJavaScriptのみで処理したいんですが、下記コードの場合だとラジオボタンの「onchange="change()"」を適用したいコードに張り付ければ、Java~の処理通りに動作するという事は把握してます

今回ラジオボタンの選択で同時に処理したい箇所が大きく2箇所あって、1つ目は「function change」のコード、2つ目は「function indication」のコードです
イメージとして「~change」でsubmitボタンの表示される値をラジオボタンの種類毎に各値に変更、「~indication」でラジオボタンの種類毎にチェックボックスを表示・非表示という風にしたいんです

下記コードの状態だと「~change」の処理しか行われず、「indication」は何も処理されません
ラジオボタンの処理を同時に行うにはどうすればいいのでしょうか

HTML

<html> <head> <meta charset="utf-8"> <script> function Condition\(\) { var de = document\.getElementById\("r3"\)\.checked; var up = document\.getElementById\("r2"\)\.checked; if \(de == false\) { if \(document\.getElementById\('name'\)\.value\.length < 10\) { window\.alert\("ERROR"\); return false; } else if \(document\.getElementById\('name'\)\.value\.length = ""\) { window\.alert\("ERROR"\); return false; } else if \(document\.getElementById\('comment'\)\.value\.length < 300\) { window\.alert\("ERROR"\); return false; } else if \(document\.getElementById\('comment'\)\.value\.length = ""\) { window\.alert\("ERROR"\); return false; } else if \(up == true\) { nochk\(\); } } else { nochk\(\); } } function change\(\) { var radiob = document\.getElementsByName\('bbs'\); if \(radiob\[0\]\.checked == true\) { document\.getElementById\("send"\)\.value = "投稿"; } else if \(radiob\[1\]\.checked == true\) { document\.getElementById\("send"\)\.value = "更新"; } else if \(radiob\[2\]\.checked == true\) { document\.getElementById\("send"\)\.value = "削除"; } } function indication\(\) { document\.getElementById\('r1'\)\.onClick = function\(\) { document\.getElementById\('chkb'\)\.disabled = false; } document\.getElementById\('r2'\)\.onClick = function\(\) { document\.getElementById\('chkb'\)\.disabled = true; } document\.getElementById\('r3'\)\.onClick = function\(\) { document\.getElementById\('chkb'\)\.disabled = true; } } function nochk\(\) { var up = document\.getElementById\("r2"\)\.checked var de = document\.getElementById\("r3"\)\.checked var chkvalue = ""; obj = document\.getElementById\("chkb"\); if \(obj\.checked == true\) { chkvalue \+= obj\.value; num\+\+; if \(up == true\) { document\.getElementById\("send"\)\.name = "upd"; } else if \(de == true\) { document\.getElementById\("send"\)\.name = "del"; } } if \(num == 0\) { window\.alert\("ERROR"\); } } </script> </head> <body> <form method="post" action="" name="form" onsubmit="return Condition\(\)"> <table> <tr> <td> 名前:<input type="text" name="name" id="name"> 内容:<textarea name="comment" cols="30" rows="3" id="comment"></textarea> <input type="radio" name="bbs" id="r1" value="post" onchange="change\(\)">投稿 <input type="radio" name="bbs" id="r2" value="update" onchange="change\(\)">更新 <input type="radio" name="bbs" id="r3" value="delete" onchange="change\(\)">削除 <input type="submit" value="投稿" id="send"> </td> </tr> </table> <\?php while\(\$row = mysqli_fetch_array\(\$result, MYSQLI_ASSOC\)\) { \?> <table> <input type="checkbox" name="chkid\[\]" id="chkb" value="<\?=\$row\['id'\] \?>"> <tr> <td>名前: <\?php echo \$row\['name'\] \?> </td> </tr> <tr> <td>内容: <\?php echo \$row\['comment'\] \?> </td> </tr> </table> <\?php } mysqli_free_result\(\$result\); mysqli_close\(\$link\); \?> </form> </body> </html>

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

jm1156
jm1156

2016/08/24 05:30

そのまえに、以前の質問をちゃんと解決していきましょう。 未解決の質問のまま次の質問に行こうとすると、どんどんわからなくなりますよ。
date
date

2016/08/24 05:33

これだけだとfunction indication\(\)を使う必要が無いが

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

JavaScript

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

HTML

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