質問編集履歴

2

FormData追記による編集

2022/02/19 11:41

投稿

tamagokake
tamagokake

スコア33

test CHANGED
File without changes
test CHANGED
@@ -69,6 +69,7 @@
69
69
  for(let i = 0; i < 13; i++) {
70
70
  var corporateText = new FormData(corporateTextArea[i]);
71
71
  var request = new XMLHttpRequest();
72
+ request.append(corporateText[i]);
72
73
  request.open("PATCH", "/corporates/"+corporateId.value, true);
73
74
  request.send("@corporate="+corporateText);
74
75
  corporateFormButton.style.display = "block";

1

2022/02/19 10:09

投稿

tamagokake
tamagokake

スコア33

test CHANGED
@@ -1 +1 @@
1
- send()に422 (Unprocessable Entity)が出てしまう
1
+ FormData()にUncaught TypeErrorが出てしまう
test CHANGED
@@ -8,7 +8,8 @@
8
8
  ### 発生している問題・エラーメッセージ
9
9
  変更ボタンをクリックするとデータは変更されずに、フォームが非表示となり元のデータが表示されてしまいます。コンソールには
10
10
  ```
11
- PATCH http://localhost:3000/corporates/10 422 (Unprocessable Entity)
11
+ edit.js:53 Uncaught TypeError: Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.
12
+ at HTMLButtonElement.<anonymous>
12
13
  ```
13
14
  と表示されています。
14
15
 
@@ -57,15 +58,19 @@
57
58
  const corporateListTitle = document.getElementById("js-corporate-label")
58
59
  var corporateLabelArea = document.getElementsByClassName("corporate-data")
59
60
  var corporateTextArea = document.getElementsByClassName("corporate-text")
61
+
60
62
  const corporateName = document.getElementById("js-corporate-name")
61
63
  const corporateButton = document.getElementById("js-corporate-button")
62
64
  const corporateFormButton = document.getElementById("button-box")
63
65
  const corporateId = document.getElementById("js-corporate-id")
64
66
 
65
- var request = new XMLHttpRequest();
67
+
66
- request.open("PATCH", "/corporates/"+corporateId.value, true);
68
+
67
- request.send("corporate="+corporateTextArea.value);
68
69
  for(let i = 0; i < 13; i++) {
70
+ var corporateText = new FormData(corporateTextArea[i]);
71
+ var request = new XMLHttpRequest();
72
+ request.open("PATCH", "/corporates/"+corporateId.value, true);
73
+ request.send("@corporate="+corporateText);
69
74
  corporateFormButton.style.display = "block";
70
75
  corporateListTitle.style.display = "block";
71
76
  corporateLabelArea[i].style.display = "block";
@@ -169,10 +174,10 @@
169
174
  ```
170
175
 
171
176
  ### 試したこと
172
- updateアクションにbinding.pryを書き込みアクションが呼び出せているのか確認したところ成功しませんでした。前回質問した際にsend()を追記するように回答していただいたので検索して見よう見まねで追記したのですがコンソールにエラーメッセージが表示されてしまいました。エラーメッセージではjsファイルの50行目に問題があると書かれていたので、追記した
173
- ```js
174
- request.send("corporate="+corporateTextArea.value);
177
+ エラー文を翻訳したのですが、理解できませんでした。
175
178
  ```
176
- の記述に問題がると考えたのですが書き方が間違っているのでしょうか
179
+ パラメーター1はタイプ 'HTMLFormElement'ではりません
180
+ ```
177
181
 
182
+
178
- 長時間苦戦しているので何かご助言をいただきたいです。
183
+ 数日間苦戦しているので何かご助言をいただきたいです。