reactjs - React:如何在 React 中提交时验证输入?
问题描述
我正在制作一个费用跟踪器,它根据输入中的值在提交时制作费用列表。现在我想验证输入是否为空,如果它们是空的,我想提醒用户他们需要填写必填字段。到目前为止,我已经完成了这项工作,但到目前为止还无法正常工作
const addExpenses = () => {
setExpense(prevState => {
return [
...prevState,
{
id: uuidv4(),
name: expenseName,
amount: expenseAmount,
type: expenseType
}
];
});
if(expenseName === '') return;
setExpenseName("");
setExpenseAmount("");
};
return (
<>
<div className="field">
<label className="label">Expense name</label>
<input
value={expenseName}
onChange={updateExpenseName}
type="text"
className="expense-name"
placeholder="Expense name"
/>
</div>
<div className="field">
<label className="label">Expense amount</label>
<input
value={expenseAmount}
onChange={updateExpenseAmount}
type="number"
className="expense-amount"
placeholder="Expense amount"
/>
</div>
解决方案
首先要使用一些基本的 HTML 验证。像下面这样,我使用了一个表单,并且在我的输入中是必需的。通过使用这个,你不能提交保持任何空白的表格
<form onSubmit={handleSubmit}>
<input
required
type="text"
className="expense-name"
placeholder="Expense name"
/>
<button type="submit">Submit</button>
</form>
但是仍然有一些验证,比如如果使用给任何空间,所以在你的handleSubmit添加一些逻辑,如下所示
const handleSubmit = () =>{
//as example i am only showing for expenseName
if(expenseName.trim().length === 0){
alert('Wrong Input');
}else{
//do your job
}
}
完整示例
https://codesandbox.io/embed/dreamy-cherry-qt1qw?fontsize=14&hidenavigation=1&theme=dark
推荐阅读
- python - 使用 django 在 sqllite 上的 blob 文件
- c++ - 在 wxWebView 中弹出句柄身份验证
- jquery - 如何在 Firefox 中隐藏滚动条而不停止在 div 中滚动
- google-chrome - 如何聚焦未停靠的 Chrome 调试窗口的相应选项卡?
- javascript - 通过javascript向锚标签添加参数
- python-2.7 - PIL - 如何在文本中插入索引或下标?
- azure - 为什么某些 Azure CLI 命令需要 az login
- php - 我想使用 php 电子表格将数据下载为 CSV 格式
- ios - Xamarin IOS - HttpClient - API 在一台 iPad 而不是另一台上工作
- mongodb - 猫鼬查询或聚合以删除某些子文档字段