teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

コメントと質問追記を受けて回答変更

2021/06/20 06:26

投稿

hope_mucci
hope_mucci

スコア4447

answer CHANGED
@@ -1,3 +1,76 @@
1
+ ### 追記
2
+ 面倒なので動作するコードをそのまま貼り付けます。
3
+
4
+ ```js
5
+ function MoveCheck() {
6
+ //エラーメッセージを初期段階で未表示にする
7
+ document.getElementById("selectradio").style.display = "none";
8
+ document.getElementById("gonow").style.display = "none";
9
+ var flag = 0;
10
+ // チェックしたradioのNodeを入れておく変数(DOMをさかのぼって発送状況を取得する用途)
11
+ let selectedRadioElement = null;
12
+ //入力チェック
13
+ if (document.form1.fruitRadio.length) {
14
+ flag = 1;
15
+ var i;
16
+ for (i = 0; i < document.form1.fruitRadio.length; i++) {
17
+ if (document.form1.fruitRadio[i].checked) {
18
+ selectedRadioElement = document.form1.fruitRadio[i];
19
+ flag = 0;
20
+ break;
21
+ }
22
+ }
23
+ } else {
24
+ if (!document.form1.fruitRadio.checked) {
25
+ flag = 1;
26
+ }
27
+ }
28
+
29
+ if (flag) {
30
+ //ラジオボタン未選択の場合の処理
31
+ selectradio.style.display = ""; //「ラジオボタンを選択してください」を表示
32
+ return false; // 送信を中止
33
+ } else {
34
+ let stockValue =
35
+ selectedRadioElement //ラジオボタン
36
+ .parentElement //ラジオボタンが入っているtd
37
+ .parentElement //その行
38
+ .children[3] //その4要素目の子要素(発送状況列のtd)
39
+ .textContent //そのテキスト
40
+ ;
41
+ if (stockValue == 1) {
42
+ gonow.style.display = ""; //「【発送済み】のものを選択してください」を表示
43
+ } else {
44
+ var checked = confirm("発送を取り消しますか?");
45
+ if (checked == true) {
46
+ alert("取り消しました");
47
+ return true;
48
+ } else {
49
+ alert("キャンセルしました");
50
+ return false;
51
+ }
52
+ }
53
+ }
54
+ }
55
+ ```
56
+
57
+ 追記前に記載したDOMをさかのぼって地域のtextContetを取得した処理を適切な箇所に挿入しただけです。
58
+ 「回答のコードをそのままjsファイルの先頭に記載した」と書かれていたので、それは大きな間違いであるという意味合いも込めてもうそのまま正解(であろうコード)を書きました。
59
+ (たとえ初心者であろうとも内容の理解もせずにコピペすることはエンジニアとして失格であることを自覚してください)
60
+ 業務で作成されているコードと思われますが、公開して良いかどうかを勘案し秘匿すべき情報は隠すようコードを修正して質問文に記載したのはきちんとそのリスクを考えている、という意味ですばらしい行動ですが、そのために問題の本質がぶれたりなくなったりすると意味がありません。そのような状態では回答の内容をプログラムに組み込んでも期待した動作をしないので小出しに本来のコードの情報を書かざるを得なくなるでしょう。回答者としてはそれは非常に嫌悪感を抱く行為です。
61
+ 機密情報の絡みでそのままコードを出せない、元のコードが非常に長くてそのまま記載できない場合は、「現象を再現できる小さなコード(ミニマムコードと言う)」と作って質問文に乗せるべきです。また、そのコードを作成している過程で問題の解決法を思いついたりすることも多いです。以後、質問する際はミニマムコードを作ってから質問するようにしてください。
62
+
63
+ そもそもは、まずこのような質問は会社の同僚やリーダーなどにする質問です。そのような人はいないのでしょうか。恥ずかしくて質問できない、自分の技量が劣っていることを知られたくないから質問できない、というのであればその考えは大きな間違いです。直ちに考えを改めるべきです。
64
+ [質問は恥ではないし役に立つ](https://qiita.com/seki_uk/items/4001423b3cd3db0dada7)
65
+
66
+ また、現状の質問者の技量はこの業務を行うにあたり著しくスキル不足と言わざるを得ません。業務時間外に書籍や学習サイト等を使って修行するようにしましょう。
67
+
68
+ なお、この回答に記載したコードはそのままコピペしても動作しないように細工がしてあります。
69
+ その細工を自分で発見し、使用してください。つまり細工に関しての質問は受け付けません。
70
+ (そもそもは元のコードで誤って使っている何かを正しているだけですが)
71
+
72
+ ### 以前の回答
73
+
1
74
  イベントリスナーでクリックされたラジオボタンはハンドルできますので、クリックされたラジオボタンのinput要素から`parentElement`や`children`使って目的の要素までたどっていけば良いです。
2
75
 
3
76
  ```javascripot

1

markdownミス修正

2021/06/20 06:26

投稿

hope_mucci
hope_mucci

スコア4447

answer CHANGED
@@ -20,7 +20,7 @@
20
20
  ### == と === について
21
21
 
22
22
  MDNのドキュメントにしっかり説明されていますので一度熟読してください
23
- [https://developer.mozilla.org/ja/docs/Web/JavaScript/Equality_comparisons_and_sameness]'https://developer.mozilla.org/ja/docs/Web/JavaScript/Equality_comparisons_and_sameness)
23
+ [https://developer.mozilla.org/ja/docs/Web/JavaScript/Equality_comparisons_and_sameness](https://developer.mozilla.org/ja/docs/Web/JavaScript/Equality_comparisons_and_sameness)
24
24
 
25
25
  簡単に言うと、`==` は両側の式をいい具合に型変換してから比較します。
26
26
  `===` は型変換を行いません。