首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何禁用表单提交按钮,直到所有输入字段都填充了ReactJS?

如何禁用表单提交按钮,直到所有输入字段都填充了ReactJS?
EN

Stack Overflow用户
提问于 2022-01-04 16:32:22
回答 2查看 209关注 0票数 0

我想发送一个表单,所以我为此创建了一个函数。我有一个提交表单,在表单的所有字段被完全填充之前,按钮不应该启用。

所有的验证是有效的,但这不是一个问题,我需要它的onclick事件。

我的代码可以工作,但是当我一次单击复选框使其为真,然后再次单击使其为假时,该按钮应该是禁用的,但它将再次被启用。..。

代码语言:javascript
复制
const [name, setName] = useState("");
  const [surname, setSurname] = useState("");
  const [email, setEmail] = useState("");
  const [checkbox, setCheckbox] = useState(false);
  let handleSubmit = async (e) => {
    e.preventDefault();
    try {
      ...
    }
  };
return(
<Input
                      required
                      type="text"
                      value={name}
                      placeholder="İsim"
                      onChange={(e) => setName(e.target.value)}
                    />
<Input
                      required
                      type="text"
                      value={surname}
                      placeholder="Soyisim"
                      onChange={(e) => setSurname(e.target.value)}
                    />
<Input
                      required
                      type="email"
                      placeholder="E-mail"
                      onChange={(e) => setEmail(e.target.value)}
                    />
<Input
                      type="checkbox"
                      required
                      value={checkbox}
                      onChange={(e) => setCheckbox(e.target.value)}
                    />
<input
                  type="submit"
                  name="Onaylıyorum"
                  disabled={!name || !surname || !email || !checkbox}
                />
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-04 16:41:52

对于复选框,您必须从value支柱更改为checked支柱,然后访问event.target.checked,即

代码语言:javascript
复制
 <input type="checkbox" checked={checkbox} onChange={(e) => setCheckbox(e.target.checked)} />

反应文档也有一个例子

票数 1
EN

Stack Overflow用户

发布于 2022-01-04 16:37:10

复选框是特殊的,并且没有.value,相反,您希望在复选框onChange函数中查找.checked

像这样..。

onChange={(e) => setCheckbox(e.target.checked)}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70582030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档