zoukankan      html  css  js  c++  java
  • 表单

    select 标签

    在HTML中,<select > 创建一个下拉列表,selected 属性可以设置初始化选中

    React中,并不使用这个 selected 属性,而是在根 select 标签中使用了一个 value 属性,这使得受控组件使用更方便,因为你只需要更新一处即可。

     textarea标签

      在HTML中,<textarea>元素通过它的子节点定义了它的文本值

      

      在React中,<textarea>的赋值使用 value属性替代,这样一来,表单中 <textarea> 的书写方式接近于单行文本框。

      

      这使 <input type="text" > , <textarea> 和 <select > 都以类似的方式工作,他们都接收一个 value 属性可以用来实现一个受控组件。

    处理多个输入元素

    当需要处理多个受控的 input 元素时,可以为每个元素添加一个 name 属性,并且让处理函数 根据 event.target.name 的值来选择相应的 input 。

    注意:this.setState ( {

        [ name ] : value 

          } )

    使用了ES6 计算的属性名称 语法 来更新与给定输入名称(name) 相对应的 state 键。

    import React, { Component } from 'react';
    
    export default class App extends Component {
    
        state={
            username:'jack',
            password:'123',
            email:'12345@qq.com'
        }
    
       handleInputChange=(event)=>{
            this.setState({
                [event.target.name]:event.target.value
            })
       }
    
        render() {
            const {username,password,email}=this.state;
           
            return (
                <div>
                 <form>
                     <label htmlFor="username">用户名:</label>
                     <input type="text" id="username" name="username" value={username} onChange={this.handleInputChange}/>
    
                     <label htmlFor="pwd">密码:</label>
                     <input type="password" id="pwd" name="password"  value={password} onChange={this.handleInputChange}/>
    
                     <label htmlFor="mail">邮箱:</label>
                     <input type="email" id="mail"  name="email"  value={email} onChange={this.handleInputChange}/>
                 </form>
                </div>
            )
           
        }
    }
    

    file input 标签

    在HTML中,<input type="file" > 可以让用户从设备存储器中选择一个或多个文件上传到服务器,或者通过 JavaScript 使用 File API 操作。

    因为它的值是只读的,它的值只能由用户设置,而不是以编程方式设置,所以它是 React 中的不受控组件。

    import React, { Component } from 'react'
    
    export default class App extends Component {
    
        handleSubmit = (event) => {
            event.preventDefault();
            console.log(this.input.files[0].name);
        }
    
        render() {
            return (
                <div>
                    <form onSubmit={this.handleSubmit}>
                        <input type="file" ref={input=>this.input=input}/>
                        <button type="submit">Submit</button>
                    </form>
                </div>
            )
        }
    }
    

     

  • 相关阅读:
    UVALive
    UVALive
    UVA
    UVALive
    BZOJ3597 SCOI2014方伯伯运椰子(分数规划+spfa)
    BZOJ3456 城市规划(多项式求逆)
    BZOJ4182 Shopping(点分治+树形dp)
    BZOJ4383 Pustynia(线段树+拓扑排序)
    BZOJ4445 SCOI2015小凸想跑步(半平面交)
    BZOJ5311 贞鱼(动态规划+wqs二分+决策单调性)
  • 原文地址:https://www.cnblogs.com/shanlu0000/p/12551461.html
Copyright © 2011-2022 走看看