0

そのため、Bootstrap ベースのフォームを送信するたびに、ラジオ ボタンの値を取得しようとしています。バニラ JavaScript を使用して component.ts ファイルでこの値を抽出しようとしましたが、VSCode で次のようにコンパイル エラーが発生します。

プロパティ 'checked' はタイプ 'HTMLElement' に存在しません。

ブラウザ: Mac ブラウザ ビュー

TS: signin.component.ts

HTML: signin.component.html

フォームでこのラジオ ボタンの値を取得するにはどうすればよいですか? 私は Angular を初めて使用するので、これまで ngModel の使用を避けてきました。これは、TS ファイル内に新しいプロパティを設定する必要があるか、その TS ファイルに別のインポートを追加する必要があるかどうかわからないためです。この機能に関するヘルプは大歓迎です。

4

1 に答える 1

3

const roles = document.getElementsByName("role") as NodeListOf<HTMLElement>;

返されたノードをHTMLElement型になるように厳密に入力しています。ただし、ラジオ ボタンのタイプはHTMLInputElementであるため、HTMLElement にはプロパティがないため、正しくエラーがスローされ.checkedます。

行を次のように変更した後:

const roles = document.getElementsByName("role") as NodeListOf<HTMLInputElement>;

既存の for ループを使用してノードを反復処理し、プロパティを使用してノード値を取得でき.valueます。

例えば

for (var i = 0; i < roles.length; i++) {
  let ele = roles[i];
  console.log(ele.value);
}
于 2020-12-16T21:29:15.887 に答える