javascript - 处理输入禁用的正确方法?反应JS
问题描述
我正在学习 React 并想制作一个简单的表单:有两个按钮:
render() {
return (
<form onSubmit={this.handleSubmit}>
<label>
Name:
<input type="text" value={this.state.value} onChange={this.handleChange} />
</label>
<input type="submit" value="Submit" />
<input type="reset" value="Reset" />
</form>
);
}
我想根据文本输入禁用这两个按钮:如果输入为空,则应禁用按钮。
最好的方法是什么?
1)检查渲染上的文本值:
<input type="submit" value="Submit" disabled={(this.state.value == "" ? true : false )} />
<input type="reset" value="Reset" onClick={this.handleReset} disabled={(this.state.value == "" ? true : false )}/>
2)拥有一个内部状态,并在每次与文本输入交互时更新它:
<input type="submit" value="Submit" disabled={ this.state.formDisabled } />
<input type="reset" value="Reset" onClick={this.handleReset} disabled={ this.state.formDisabled } />
解决方案
我会做这样的事情。
<input type="submit" value="Submit" disabled={!this.state.value} />
<input type="reset" value="Reset" onClick={this.handleReset} disabled{!this.state.value}/>
推荐阅读
- sql - 如何找到 2 个关键字列表之间的最佳匹配
- sql-server - EF - 将空值传递给 SQL 列,以便插入默认值
- angular - 生产模式中的 AoT 错误
- reactjs - 测试scrollintoview Jest
- python - asyncio.await 失败并出现 TypeError: cannot unpack non-iterable coroutine object
- mysql - 如何在节点 JS 中编写长 MySQL 查询
- python - 将python字典转换为python列表
- javascript - 如何在 ES5 中实现从服务器返回的图像的延迟加载?
- powershell - 当您启动新的 PowerShell 提示符时,什么会加载 Microsoft.PowerShell.Utility 模块?
- c++ - 使用 gcc 版本 4.8.5 而不是 3.2.3 编译时出错:4.8.5 中较弱的功能消歧?