zoukankan      html  css  js  c++  java
  • 组件收集表单数据

    理解
    1) 问题: 在react应用中, 如何收集表单输入数据
    2) 包含表单的组件分类
    a. 受控组件: 表单项输入数据能自动收集成状态
    b. 非受控组件: 需要时才手动读取表单输入框中的数据

    例子:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script type="text/javascript" src="../js/react.development.js"></script>
        <script type="text/javascript" src="../js/react-dom.development.js"></script>
        <script type="text/javascript" src="../js/prop-types.js"></script>
        <script type="text/javascript" src="../js/babel.min.js"></script>
    </head>
    <body>
    <div id="example"></div>
    <script type="text/babel">
          /*
            1. 问题: 在react应用中, 如何收集表单输入数据
            2. 包含表单的组件分类
                受控组件
                非受控组件
            */
            /*
            需求: 自定义包含表单的组件
                1. 界面如下所示
                2. 输入用户名密码后, 点击登陆提示输入信息
                3. 不提交表单
            */
    
         class LoginForm extends React.Component{
            constructor(props) {
                super(props)
                this.handleSubmit = this.handleSubmit.bind(this)
                this.handleChange = this.handleChange.bind(this)
                this.state={
                    pwd:''
                }
            }
    
    
    
            handleSubmit(event) {
    
                //两种方式获取表单的值
                const username=this.nameInput.value
                const password=this.state.pwd
                alert(`准备提交的用户名为: ${username}, 密码:${password}`)
    
                // 阻止事件的默认行为: 提交表单
                event.preventDefault()
            }
    
            handleChange(event){
                this.setState({pwd: event.target.value})
            }
    
            render(){
                return (
                    <form onSubmit={this.handleSubmit} action="/test">
                        <label>
                        用户名:
                            <input type="text" ref={input=>this.nameInput=input}/>
                        </label>&nbsp;
                        <label>
                            密码:
                            <input type="password" value={this.state.pwd} onChange={this.handleChange}/>
                        </label>&nbsp;
                        <input type="submit" value="登陆" />
                    </form>
                )
            }
         }
    
        
    
         //渲染应用组件标签
         ReactDOM.render(<LoginForm/>,document.getElementById('example'))
    
    </script>
    </body>
    </html>
  • 相关阅读:
    跳槽“六要”你懂吗?[转载]
    基于RFID 技术的仓储物流入库流程设计[转载]
    RFID:物流时代的新宠儿[转载]
    WEB界面设计五种特征[转]
    全国物流快递查询网址大全
    职员想跳槽,公司应检讨[转]
    商品条码管理办法 (2005)
    让总裁夜不成眠三件事[转]
    Google地图的配色问题(以及MapBar和51ditu)
    薪酬公开还是保密[转]
  • 原文地址:https://www.cnblogs.com/jnba/p/12525819.html
Copyright © 2011-2022 走看看