[解決済み] Retrieving value from <select> with multiple option in React
Question
The React way to set which option is selected for a select box, is to set a special
value
prop on the
<select>
itself, corresponding to the
value
attribute on the
<option>
element you desire to be selected. For a
multiple
select this prop can accept an array instead.
Now because this is a special attribute, I'm wondering what the canonical way is to
retrieve
the selected options in the same array-of-option-values-structure when the user changes things (so I can pass it through a callback to a parent component etc), since presumably the same
value
property won't be available on the DOM element.
例として、テキストフィールドの場合、次のようになります(JSX)。
var TextComponent = React.createClass({
handleChange: function(e) {
var newText = e.target.value;
this.props.someCallbackFromParent(newText);
},
render: function() {
return <input type="text" value={this.props.someText} onChange={this.handleChange} />;
}
});
を置き換えるのと同等なものは何ですか?
???
に相当するものは何でしょうか?
var MultiSelectComponent = React.createClass({
handleChange: function(e) {
var newArrayOfSelectedOptionValues = ???;
this.props.someCallbackFromParent(newArrayOfSelectedOptionValues);
},
render: function() {
return (
<select multiple={true} value={this.props.arrayOfOptionValues} onChange={this.handleChange}>
<option value={1}>First option</option>
<option value={2}>Second option</option>
<option value={3}>Third option</option>
</select>
);
}
});
どのように解決するのですか?
とは
Array.from()
と
e.target.selectedOptions
であれば、制御されたselect-multipleを実行することができる。
handleChange = (e) => {
let value = Array.from(e.target.selectedOptions, option => option.value);
this.setState({values: value});
}
target.selectedOptionsはHTMLCollectionを返します。
関連
-
[解決済み] jQueryを使ってドロップダウンリスト(セレクトボックス)から選択されたテキストを取得する
-
[解決済み] オブジェクトの配列から、プロパティの値を配列として取り出す。
-
[解決済み] jQueryでJavaScriptオブジェクトから選択する際に、オプションを追加する最も良い方法は何ですか?
-
[解決済み] jQueryで名前を指定して要素を選択するには?
-
[解決済み] jQuery ドロップダウンから選択されたオプションを取得する
-
[解決済み] セレクトボックスのオプションをすべて削除してから、オプションを1つ追加して、jQueryで選択するにはどうすればよいですか?
-
[解決済み] React jsのonClickはメソッドに値を渡すことができない
-
[解決済み] React JSX: selecting "selected" on selected <select> option
-
[解決済み】select(ドロップダウン)の値を変更前に取得する。
-
[解決済み] イテレータでmap()を使用する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] チェックボックスが選択されているかどうかを確認するjQuery
-
[解決済み] なぜJavaScriptでは!{}[true]がtrueに評価されるのですか?
-
[解決済み] WebStormで未解決の変数が大量にある場合の警告に対処する方法は?
-
[解決済み] node.jsで文字列のsha1ハッシュを取得するにはどうすればよいですか?
-
[解決済み] JavaScriptを使用してHTML要素に属性を追加/更新するには?
-
[解決済み] CORS OriginヘッダーとCSRFトークンによるCSRF保護
-
[解決済み] Javascript 空の配列の削減
-
[解決済み] Reactメモを使うべきではない場合とは?
-
[解決済み] Javascript の parseInt() で先頭のゼロを削除する。
-
[解決済み] JavaScriptのArray.sort()メソッドでシャッフルするのは正しいのか?