javascript - 当组件在多个选择中呈现时,如何取消选择第一个选项?

标签 javascript html reactjs

加载选择多个选项时,始终会选择第一个选项。仅当按住ctrl键选择或选择其他选项时,它才会变为未选择状态。此功能的缺点是,当第一个选项是选择和提交的唯一选项时,无法调用 onChange 事件处理程序。

createSelectItems(input_items) {
    let items = [];
    for (let i = 0; i < input_items.length; i++) {
        items.push(<option key={i} value={input_items[i]}>{input_items[i]}</option>);
    }
    return items;

render() {
    if(this.state.interfaces.length>0){
    return (
        <div className="interfaces">
            <label>select interfaces for <strong>{this.props.device}</strong>
                <select onChange={this.onInterfaceSelected} multiple>
                    {this.createSelectItems(this.state.interfaces)}
                </select>
                <p>{this.state.selected_interfaces}</p>
            </label>
            { this.state.selected_interfaces.length >0 && <button className="submit" onClick={this.submitInterfaces}>submit</button>}
        </div>
    );
}
return null;
}

在这种情况下;提交按钮也不显示。我该如何缓解这种情况?

enter image description here

最佳答案

将您的 createSelectItems 更改为以下方法,

createSelectItems(input_items) {
    let items = [];
    items.push(<option value={0} hidden>Select an option...</option>)
    for (let i = 0; i < input_items.length; i++) {
        items.push(<option key={i} value={input_items[i]}>{input_items[i]}</option>);
    }
    return items;
 }

关于javascript - 当组件在多个选择中呈现时,如何取消选择第一个选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50924347/

相关文章:

javascript - React Navigation 检查上一个屏幕是否存在

javascript - webpack < 5 默认情况下用于包含 Node.js 核心模块的 Polyfill。这已不再是这种情况

javascript - 将段落分成跨度

javascript - Facebook 如何在聊天时改变其符号中的表情符号?

Javascript 测验数组和淡入/淡出

javascript - 无法创建存储 td、tr 或 th 的 DocumentFragment?

javascript - 使用 *ngIf + 模板变量 + loadIntoLocation 以编程方式将组件加载到 View 中

html - 在链接和按钮之间创建空间

java - 运行 python -m http.server XXXX 是否安全

javascript - React-native:当输入为空文本时,计算返回 NaN