【发布时间】:2019-05-19 10:26:52
【问题描述】:
我希望在我的 React 组件中使用 materialize-css 创建一个带有 datepicker 的表单。这个表单捕获的字段不多,结构相当简单。返回的表单如下所示:
<form onSubmit={this.handleSubmit.bind(this)}>
<div className="container">
<div className="card grey lighten-3">
<div className="card-content black-text">
<span className="card-title">
<input placeholder="Event Name"
name="name" value={this.state.name}
onChange={this.handleStateChange.bind(this)}/>
</span>
<input name="description" placeholder="Description"
value={this.state.description}
onChange={this.handleStateChange.bind(this)}/>
<input name="image" placeholder="Image URL"
value={this.state.image}
onChange={this.handleStateChange.bind(this)}/>
<input placeholder="Start Date"
className="datepicker" name="startDate" value={this.state.startDate}
onSelect={this.handleStateChange.bind(this)}/>
</div>
<div class="card-action">
<div className="row">
<span>
<div className="col s3">
<input className="btn light-blue accent-1" type="submit" value="Submit"/>
</div>
<div className="col s3">
<a className="btn grey" onClick={this.handleExpand.bind(this)}>Cancel</a>
</div>
</span>
</div>
</div>
</div>
</div>
</form>
状态变化用
处理handleStateChange(item) {
this.setState({[item.target.name]: item.target.value});
}
我已经调用了AutoInit 来初始化我的日期选择器
M.AutoInit();
我尝试使用onChange 而不是onSelect 来管理日期选择器状态更改,但它似乎没有捕获该事件。使用onSelect,如果我选择一个日期然后重新打开日期选择器,有时会捕获日期。
我也尝试过使用一些alternate initialization methods for the datepicker 无济于事。
如何使用给定的设置正确捕获输入更改?
【问题讨论】:
-
不相信有
onSelect- 你的意思是onChange吗? -
我已经尝试了几个星期,但一切都是徒劳的,即使我想知道它的答案。
-
@SakoBu 我在问题中提到了这一点。似乎都没有提供所需的行为
-
哦,我也有同样的问题...这真的很难...对于时间选择器,我可以使用 onBlur 来完成...但不能使用 datepicker
-
Check this repository in this 我尝试制作 Materialize CSS 提供的所有 Javascript 组件 - github.com/GermaVinsmoke/Reactize
标签: javascript reactjs datepicker materialize