Javascript ReactJS–;TextArea onChange仅在iPhone上不触发
我有一个文本区域,它在输入值时更新状态中的值,并在文本区域中显示新值。非常简单,在台式机和安卓手机上运行良好,但在iPhone上不起作用。在iPhone上,我打字时什么也没发生(也没有光标) 我的文本区Javascript ReactJS–;TextArea onChange仅在iPhone上不触发,javascript,ios,reactjs,textarea,onchange,Javascript,Ios,Reactjs,Textarea,Onchange,我有一个文本区域,它在输入值时更新状态中的值,并在文本区域中显示新值。非常简单,在台式机和安卓手机上运行良好,但在iPhone上不起作用。在iPhone上,我打字时什么也没发生(也没有光标) 我的文本区 <div> <h3>Notes</h3> <textarea name="notes" value={this.state.notes} onChange={(e) => this.handleTextChange(e)}><
<div>
<h3>Notes</h3>
<textarea name="notes" value={this.state.notes} onChange={(e) => this.handleTextChange(e)}></textarea>
</div>
我还尝试了各种方法:
<div>
<h3>Notes</h3>
<textarea name="notes" value={this.state.notes} onChange={this.handleTextChange}>{this.state.notes}</textarea>
</div>
<div>
<h3>Notes</h3>
<input name="notes" value={this.state.notes} onChange={this.handleTextChange} /> // this does work on iPhone, but I need a textarea
</div>
<div>
<h3>Notes</h3>
<textarea name="notes" value={this.state.notes} onChange={(e) => this.handleTextChange(e)}></textarea>
</div>
<div>
<h3>Notes</h3>
<textarea name="notes" value={this.state.notes} onChange={(e) => this.handleTextChange(e)}>{this.state.notes}</textarea>
</div>
<form id="noter-save-form" method="POST">
<textarea id="notes-text-area" name="notes" value={this.state.notes} onChange={(e) => this.handleTextChange(e)}></textarea>
<input type="submit" value="Save" />
</form>
有人知道为什么我不能在iPhone上输入
文本区域,但可以在其他任何地方输入吗?
使用输入而不是更改
<textarea ... onInput={(e) => ...}></textarea>
…}>
尝试添加警报(e.target.name,e.target.value)代码>在handleTextChange中,并在iphone上检查它。顺便说一句,不要这样做(e)=>this.handleTextChange(e),只做this.handleTextChange。不要这样做[e.target.name]:e.target.value
从设置状态中提取它们constantsI尝试了这些更改,但没有成功。(以上编辑)
<div>
<h3>Notes handleNoteChanged</h3>
<textarea name="notes" value={this.state.notes} onChange={this.handleNoteChanged}>{this.state.notes}</textarea>
<textarea name="notes" value={this.state.notes} onChange={this.handleNoteChanged}></textarea>
</div>
handleNoteChanged = (e) => {
console.log("triggering handleNoteChanged...");
alert(e.target.name, e.target.value);
const name = e.target.name
console.log("name = " + name);
const value = e.target.value
console.log("value = " + value);
this.setState({
notes: value
});
}
<textarea ... onInput={(e) => ...}></textarea>