zoukankan      html  css  js  c++  java
  • react表单

    //首先简单介绍受控组件,每个都要去change事件触发

    import React from 'react'
    
    class Form extends React.Component {
        constructor(props) {
            super(props);
            this.state = { 
                username:'',
                selectValue:'',
                content:''
            }
        }
        render() { 
            return (
                <div style={{padding:"10px"}}>
                    <form onSubmit={this.handleSubmit}>
                        <section style={{marginBottom:"10px"}}>
                            <label htmlFor="username">姓名:</label>
                            <input type="text" id="username" value={this.state.username} 
    onChange={this.changeHandle} /> </section> <section style={{marginBottom:"10px"}}> <label>水果:</label> <select value={this.state.selectValue} onChange={this.selectChange}> <option value="grapefruit">葡萄柚</option> <option value="lime">酸橙</option> <option value="coconut">椰子</option> <option value="mango">芒果</option> </select> </section> <section style={{marginBottom:"10px"}}> <label style={{verticalAlign:"top"}}>内容:</label> <textarea value={this.state.content} onChange={this.contentChange} /> </section> <input type="submit" value="提交"/> </form> </div> ); } handleSubmit=(e)=>{ e.preventDefault(); console.log(this.state.username); console.log(this.state.selectValue); console.log(this.state.content) console.log(e); } changeHandle=(e)=>{ //用户名 e.persist(); this.setState({ username:e.target.value }) } selectChange=(e)=>{ //水果 e.persist(); this.setState({ selectValue:e.target.value }) } contentChange=(e)=>{ e.persist();//这个是浏览器报错提示说加的,如果需要异步访问事件属性,应在事件上调用 event.persist()
    ,这种操作将从事件池中删除 SyncthesicEvent,并允许用户代码保留对事件的引用。
    //内容 this.setState({ content:e.target.value }) } } export default Form;

    //非受控组件

    import React from 'react'
    class NameForm extends React.Component {
        constructor(props) {
          super(props);
          this.username = React.createRef();
          this.password = React.createRef();
        }
        render() {
          return (
            <form onSubmit={this.handleSubmit}>
              <label>
                Name:
                <input type="text" ref={this.username} />
              </label>
              <label>
                password:
                <input type="text" ref={this.password} />
              </label>
              <input type="submit" value="Submit" />
            </form>
          );
        }
        handleSubmit=(event)=>{
            event.preventDefault();
            console.log(this.username.current.value)
            console.log(this.password.current.value)
        }
        
    }
    
    export default NameForm;
  • 相关阅读:
    Mac下mysql出现错误:ERROR 1055 (42000)
    单表查询
    外键的变种 三种关系
    Java8中Lambda表达式详解
    Java中的比较器Comparable、Comparator
    Java创建线程的方法
    java日期格式化
    Docker容器如何修改hosts
    使用postman可以正常访问,但是在应用中返回415状态码
    使用tcpdump进行抓包
  • 原文地址:https://www.cnblogs.com/zhihou/p/13020994.html
Copyright © 2011-2022 走看看