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

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

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

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

HTML

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

Q&A

解決済

1回答

1865閲覧

JavaScriptで何かがおかしい

a-_.

総合スコア133

JavaScript

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

HTML

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

0グッド

0クリップ

投稿2016/08/24 05:19

編集2016/09/06 02:32

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

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

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

HTML

1<html> 2 <head> 3 <meta charset="utf-8"> 4 <script> 5 function Condition() { 6 var de = document.getElementById("r3").checked; 7 var up = document.getElementById("r2").checked; 8 if (de == false) { 9 if (document.getElementById('name').value.length < 10) { 10 window.alert("ERROR"); 11 return false; 12 } else if (document.getElementById('name').value.length = "") { 13 window.alert("ERROR"); 14 return false; 15 } else if (document.getElementById('comment').value.length < 300) { 16 window.alert("ERROR"); 17 return false; 18 } else if (document.getElementById('comment').value.length = "") { 19 window.alert("ERROR"); 20 return false; 21 } else if (up == true) { 22 nochk(); 23 } 24 } else { 25 nochk(); 26 } 27 } 28 function change() { 29 var radiob = document.getElementsByName('bbs'); 30 if (radiob[0].checked == true) { 31 document.getElementById("send").value = "投稿"; 32 } else if (radiob[1].checked == true) { 33 document.getElementById("send").value = "更新"; 34 } else if (radiob[2].checked == true) { 35 document.getElementById("send").value = "削除"; 36 } 37 } 38 function indication() { 39 document.getElementById('r1').onClick = function() { 40 document.getElementById('chkb').disabled = false; 41 } 42 document.getElementById('r2').onClick = function() { 43 document.getElementById('chkb').disabled = true; 44 } 45 document.getElementById('r3').onClick = function() { 46 document.getElementById('chkb').disabled = true; 47 } 48 } 49 function nochk() { 50 var up = document.getElementById("r2").checked 51 var de = document.getElementById("r3").checked 52 var chkvalue = ""; 53 obj = document.getElementById("chkb"); 54 if (obj.checked == true) { 55 chkvalue += obj.value; 56 num++; 57 if (up == true) { 58 document.getElementById("send").name = "upd"; 59 } else if (de == true) { 60 document.getElementById("send").name = "del"; 61 } 62 } 63 if (num == 0) { 64 window.alert("ERROR"); 65 } 66 } 67 </script> 68 </head> 69 <body> 70 <form method="post" action="" name="form" onsubmit="return Condition()"> 71 <table> 72 <tr> 73 <td> 74 名前:<input type="text" name="name" id="name"> 75 内容:<textarea name="comment" cols="30" rows="3" id="comment"></textarea> 76 <input type="radio" name="bbs" id="r1" value="post" onchange="change()">投稿 77 <input type="radio" name="bbs" id="r2" value="update" onchange="change()">更新 78 <input type="radio" name="bbs" id="r3" value="delete" onchange="change()">削除 79 <input type="submit" value="投稿" id="send"> 80 </td> 81 </tr> 82 </table> 83 84<?php 85 while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { 86?> 87 88 <table> 89 <input type="checkbox" name="chkid[]" id="chkb" value="<?=$row['id'] ?>"> 90 <tr> 91 <td>名前: 92 <?php echo $row['name'] ?> 93 </td> 94 </tr> 95 <tr> 96 <td>内容: 97 <?php echo $row['comment'] ?> 98 </td> 99 </tr> 100 </table> 101 102<?php 103 } 104 mysqli_free_result($result); 105 106 mysqli_close($link); 107?> 108 109 </form> 110 </body> 111</html>

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

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

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

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

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

jm1156

2016/08/24 05:30

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

2016/08/24 05:33

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

回答1

0

ベストアンサー

とりあえず目のつく箇所だけ

・・・.value.length = ""

の箇所、
.value == ""
もしくは
.value.length == 0
じゃないの?

おそらくIE対策のclick処理も変

投稿2016/08/24 05:35

yambejp

総合スコア114736

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問