美文网首页
多个表单元素重用change事件处理器

多个表单元素重用change事件处理器

作者: DontPushMeForev | 来源:发表于2016-12-23 14:05 被阅读0次

在使用约束表单组件时,可以再react中重用一个事件处理器

方法一:可以使用.bind()传递其他参数

示例:

import React from 'react';

var MyForm = React.createClass({

          getInitialState(){

                   return{

                                        given_name:"",      family_name:""   

                             }

              },

           handleChange(name,event){

                       var newState = {};

                       newState[name] = event.target.value;

                        this.setState(newState);

            },

            handleSubmit(event){

                        event.preventDefault();

                        var fullName = [

                                   'Hi',this.state.given_name,this.state.family_name 

                      ]; 

                      alert(fullName.join(" "));

                       this.refs.given_name.value="";

                       this.refs.family_name.value="";

              }, 

           render(){

                return (

                   <form>

                      <label htmlFor="given_name">Given Name:</label>

                      <br />

                    <input type="text" name="given_name" value={this.state.given_name}

                             onChange={this.handleChange.bind(this,"given_name")}                ref="given_name" />

<br />

                 <input type="text" name="family_name" value={this.state.family_name}

                          onChange={this.handleChange.bind(this,"family_name")}                ref="family_name" />

                 <button onClick={this.handleSubmit}>submit</button>

          </form>

       )

     }

}):

export { MyForm as default }

方法二:使用DOMNode的name属性来判断需要更新哪一个组件的状态。

示例二:

上面的两个例子特别的相似,解决同样的问题,但是使用了不同的方式,React还在addon中提供了一个mixin,也可以通过这个方法解决这个问题。

相关文章

  • 多个表单元素重用change事件处理器

    在使用约束表单组件时,可以再react中重用一个事件处理器 方法一:可以使用.bind()传递其他参数 示例: i...

  • jquery 事件、主动触发与自定义事件、事件冒泡

    jquery事件 事件函数列表: blur() 元素失去焦点 focus() 元素获得焦点 change() 表单...

  • 16

    jquery事件 事件函数列表: blur() 元素失去焦点 focus() 元素获得焦点 change() 表单...

  • 2019-06-18 事件函数列表

    jquery事件 事件函数列表: blur() 元素失去焦点 focus() 元素获得焦点 change() 表单...

  • jquery事件

    jquery事件 事件函数列表: blur() 元素失去焦点focus() 元素获得焦点change() 表单元素...

  • jQuery事件

    jquery事件事件函数列表: blur() 元素失去焦点focus() 元素获得焦点change() 表单元素的...

  • 前端

    jquery事件事件函数列表: blur() 元素失去焦点focus() 元素获得焦点change() 表单元素的...

  • 15

    jquery事件事件函数列表: blur() 元素失去焦点focus() 元素获得焦点change() 表单元素的...

  • 网页17day

    jquery事件事件函数列表:blur() 元素失去焦点focus() 元素获得焦点change() 表单元素的值...

  • jquery事件

    事件函数列表: blur() 元素失去焦点 focus() 元素获得焦点 change() 表单元素的值发生...

网友评论

      本文标题:多个表单元素重用change事件处理器

      本文链接:https://www.haomeiwen.com/subject/oxffvttx.html