关于拿到input的数据
来源:5-1 用React表单、TS的类型继承和鸭子类型实现登录表单

坡村小码哥
2021-03-05
代码如下
const handleSubmit = (event: FormEvent<HTMLFormElement>) => {
event.preventDefault();
const username = (event.currentTarget.elements[0] as HTMLFormElement).value; //1
const password = (event.currentTarget.elements[1] as HTMLFormElement).value; //2
login({ username, password });
};
问题
在上述代码的1,2处,event.currentTarget.elements[0]
和event.currentTarget.elements[1]
这两个元素应该都是form下两个div元素对吧,但是value明明是div的子元素input的属性,而且还是第二个子元素,为什么这一步我们可以直接从div中拿到input的value属性呢?请老师解答,谢谢!
写回答
1回答
-
你可以打印一下event.currentTarget.elements,event.currentTarget.elements[0], event.currentTarget.elements[1],会发现这里读的并不是直接子元素,而是会去找里面的input等元素。form表单本来就是这样运行的
012021-03-07
相似问题