- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何为表单输入创建类型?
const Index = () => {
const handleSubmit = async (e: FormEvent<HTMLFormElement>) => {
e.preventDefault()
console.log(e.currentTarget.elements.email)
}
return (
<Layout>
<form onSubmit={handleSubmit}>
<input name='email' type='email' autoComplete='email' required />
<input name='password' type='password' autoComplete='password' required />
<button type='submit'>Login</button>
</form>
</Layout>
)
}
类型错误:
Property 'email' does not exist on type 'HTMLFormControlsCollection'.
最佳答案
在这里FormEvent<HTMLFormElement>
将给出一个数组列表为 HTMLFormControlsCollection
.
因此,当您尝试接收这样的电子邮件时 e.currentTarget.elements.email
它抛出错误,
Property 'email' does not exist on type 'HTMLFormControlsCollection'.
所以要获取电子邮件的值,您需要获取数组中的电子邮件元素作为
e.currentTarget.elements[0]
(因为电子邮件是第一个元素)
所以现在我们得到了电子邮件输入元素,因此我们将其分配为 HTMLInputElement
.. 并获得值(value)使用,
console.log((e.currentTarget.elements[0] as HTMLInputElement).value);
工作示例:
更新:
如评论部分所述,我已在您也可以使用的地方进行了此更新,
console.log((e.currentTarget.elements.namedItem('email') as HTMLInputElement).value);
获取电子邮件值.. 但这里是从我用 [0]
描述的数组集合中获取电子邮件值..
更新的 Codesandbox
关于reactjs - React FormEvent<HTMLFormElement> 表单输入 Prop 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60635093/
以下是重现该问题的 HTML 代码段: window.alert(document.getElementById('foo').action); 起初我使用的是 jQuery
HTMLFormElement DOM 接口(interface)提供 .submit()和 .reset()方法,我在我的单页应用程序中大量使用了这些方法。 现在我正试图找出这两种方法之间的关系并触
这是我的测试用例的样子: const renderCard = ({ onSubmit = jest.fn(), }: RenderCardParams = {}) => { return r
我正在尝试弄清楚如何从我的 textarea 输入框和我的 chrome 控制台中获取评论,我不断收到此错误。 未捕获的 TypeError:对象 # 没有方法 'add_comment' initi
我有一个函数,它接受表单元素作为输入,过滤其子元素(删除那些没有可序列化值的元素),然后返回 {name: value} 形式的对象。 类型检查似乎失败了,因为 Flow 告诉我传递给过滤器函数的每个
谁能给我解释一下这个错误是什么意思?如果对此有任何帮助,我将不胜感激。 我为此使用的 Jquery 代码是这样的。 $('#form').submit(); 最佳答案 检查表单以查看是否有一个 H
如何为表单输入创建类型? const Index = () => { const handleSubmit = async (e: FormEvent) => { e.preventDef
类型设置为“提交”,但仍然不起作用。我正在使用 console.log 但它不显示任何内容。我希望控制台日志显示一个数字(两个通过 ajax 添加在一起) 我该如何解决这个问题? Jquery 代码:
我正在使用 ajax 调用发送表单。当用户使用表单中的提交按钮时,将调用函数 sendForm()。该函数防止默认情况(提交表单),并验证表单(对于具有 required 的字段),如果表单有效,则进
我想使用模态窗口中的 ajax 请求提交表单。 通过单击此链接打开模态: Write a review 模态窗口: ×
所以我有这个捕获提交的片段: $(function(){ $('#xhr2_form').submit(function(e){ e.preventDefault();
我收到 Javascript 错误:对象 # 没有方法“getElementById”。我正在尝试使用一个按钮将所选元素传输到 HTML 中的另一个选择框。到处都看过,但没有人的解决方案似乎对我有用
第三方 Javascript 函数需要原生 HTML 被传入。我有一个Ext.form.Basic目的。如何将其转换为 native HTML 表单? 最佳答案 Ext.form.Basic 有一个配
我的表单就像这个demo Q.1 我想将此表单转换为 ajax,但我的 ajax 代码似乎缺少某些内容。在提交时根本不做任何事情。 Q2。我还希望该函数在选择文件时触发更改,而不是等待提交。 Q3。我
我是一名新开发人员,没有网络应用方面的经验。我在 Firestore 中有一个名为“用户”的集合,其中文档 ID 是用户的电子邮件。我正在尝试按照 Firebase here 提供的示例读取其中一个文
我在使用 vue-router 时遇到了这个奇怪的问题,我无法调试它。 这是我的 routes.ts import Navbar from '@/layout/Navbar.vue' import S
我正在尝试在我的 React 应用程序中使用 Formik 。我有用 ts 编写的登录组件。由于某种原因,Formik 内的 Form 元素抛出以下错误: Error TS2559 (TS) Type
我是一名优秀的程序员,十分优秀!