[解決済み】ReactJSでラジオボタンを使用するには?
2022-04-03 09:05:29
質問
私はReactJSの初心者です、これがオフに聞こえる場合は申し訳ありません。 私は、受信したデータに従って複数のテーブル行を作成するコンポーネントを持っています。
列内の各セルには、ラジオチェックボックスがあります。したがって、ユーザーは1つを選択することができます
site_name
と1つの
address
を既存の行から選択する。選択したものをフッターに表示すること。と、いうところで行き詰っています。
var SearchResult = React.createClass({
render: function () {
var resultRows = this.props.data.map(function (result) {
return (
<tbody>
<tr>
<td>
<input type="radio" name="site_name" value={result.SITE_NAME}>
{result.SITE_NAME}
</input>
</td>
<td>
<input type="radio" name="address" value={result.ADDRESS}>
{result.ADDRESS}
</input>
</td>
</tr>
</tbody>
);
});
return (
<table className="table">
<thead>
<tr>
<th>Name</th>
<th>Address</th>
</tr>
</thead>
{resultRows}
<tfoot>
<tr>
<td>chosen site name ???? </td>
<td>chosen address ????? </td>
</tr>
</tfoot>
</table>
);
},
});
jQueryでは、次のようなことができます。
$("input[name=site_name]:checked").val()
を使用して、1つのラジオチェックボックスタイプの選択を取得し、それを最初のフッターセルに挿入します。
しかし、きっとReactjsの方法があるはずで、それは私が完全に見逃しているのでしょうか?ありがとうございます。
解決方法は?
レンダリングの変更は
state
または
props
(
リアクト・ドック
).
そこで、ここでは入力のイベントを登録し、その後に
state
フッターに表示するためのレンダーをトリガーします。
var SearchResult = React.createClass({
getInitialState: function () {
return {
site: '',
address: '',
};
},
onSiteChanged: function (e) {
this.setState({
site: e.currentTarget.value,
});
},
onAddressChanged: function (e) {
this.setState({
address: e.currentTarget.value,
});
},
render: function () {
var resultRows = this.props.data.map(function (result) {
return (
<tbody>
<tr>
<td>
<input
type="radio"
name="site_name"
value={result.SITE_NAME}
checked={this.state.site === result.SITE_NAME}
onChange={this.onSiteChanged}
/>
{result.SITE_NAME}
</td>
<td>
<input
type="radio"
name="address"
value={result.ADDRESS}
checked={this.state.address === result.ADDRESS}
onChange={this.onAddressChanged}
/>
{result.ADDRESS}
</td>
</tr>
</tbody>
);
}, this);
return (
<table className="table">
<thead>
<tr>
<th>Name</th>
<th>Address</th>
</tr>
</thead>
{resultRows}
<tfoot>
<tr>
<td>chosen site name {this.state.site} </td>
<td>chosen address {this.state.address} </td>
</tr>
</tfoot>
</table>
);
},
});
関連
-
[解決済み] html : iframeでhtmlのコンテンツが表示されない。
-
[解決済み] HTML5 Canvas 要素でカスタムフォントを使用するにはどうすればよいですか?
-
[解決済み] type="application/x-shockwave-flash "で表示可能な形式は?
-
[解決済み] textareaのresizableプロパティを無効にするにはどうしたらよいですか?
-
[解決済み] 要素を水平方向にセンタリングする方法
-
[解決済み] JavaScriptで要素のクラスを変更するにはどうすればよいですか?
-
[解決済み] Webフォームのフィールド/入力タグでブラウザのオートコンプリートを無効にするにはどうすればよいですか?
-
[解決済み] どのラジオボタンが選択されているかをjQueryで知るにはどうしたらよいですか?
-
[解決済み] <button> vs. <input type="button" />. Which to use?
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】このインラインブロックのdiv要素の間に説明のつかない隙間があるのはなぜですか?[重複]
-
[解決済み】ラジオボタンの代わりに画像を使用する
-
[解決済み] div要素間の空白を削除する方法
-
[解決済み] CSS color vs. background-color vs. background?
-
[解決済み] CSS "margin: 0 auto" が中央揃えにならない
-
[解決済み] フレックスアイテムを右にフロートさせる
-
[解決済み] ボディの背景色が表示されない?
-
[解決済み] HTML Divのボーダーが表示されない
-
[解決済み] head」タグと「header」タグの本当の違いは何ですか?[重複】について]
-
[解決済み] HTML CSS インビジブルボタン