【发布时间】:2016-02-20 02:23:07
【问题描述】:
我有一个select 元素,如下所示。当用户选择一个选项时,this.handleSelectClass 被调用,这反过来又呈现另一个输入字段。(选择语句在 Bootstrap 模式中)
<select class="form-control" onChange={this.handleSelectClass}>
<option>Small</option>
<option>Medium</option>
<option>Large</option>
</select>
但是,我注意到如果我打开表单并选择第一个选项,则不会呈现任何内容。这可能是因为 React 没有看到任何变化,所以它没有调用 onChange。
所以我尝试添加一个空选项。
<select class="form-control" onChange={this.handleSelectClass}>
<option><option>
<option>Small</option>
<option>Medium</option>
<option>Large</option>
</select>
现在的问题是,在第一次选择之后,空选项保留在选项列表中,这使得列表看起来很难看,并且当我选择空选项时,也会让我的程序抛出错误。
我还尝试仅在未选择任何类别时显示空选项。
<select class="form-control" onChange={this.handleSelectClass}>
{!this.state.categorySelected ? <option></option> : <div></div>}
<option>Small</option>
<option>Medium</option>
<option>Large</option>
</select>
但是,这也不起作用,因为选择元素处于模式中。
如果我选择 Small 并关闭模式,当我再次打开它时,默认选项将是 Small 而不是空选项。
我怎样才能使每次打开包含模式时都有一个默认的选择选项?然后,在我做出第一个选择后,我希望默认选项消失。
【问题讨论】:
-
您可以添加之类的选项
-
使用
$("#yourmodalID").modal('shown.bs.modal')在显示前清除选择或$("#yourmodalID").modal('hidden.bs.modal')在隐藏后清除modal -
您可以在打开表单时在选择框上调用“更改”事件...
标签: javascript html twitter-bootstrap reactjs