react.js 下获取各种input控件的值 radio、checkbox等

1、在react中可以给输入控件(如input type=text)加上引用名,好获取它的输入值
例如:

<input name="password" ref="password" type="password"  maxLength="8"/>

console.log("password:"+this.refs.password.value)

2、<textarea >控件,它和input不同,它是开标签,内容是包括在<textarea >和</textarea>之间的。如果需要获取<textarea >的值,同样可以用ref来获取
例如:

<textarea ref="jianjie" >我是一个很幽默的人,最爱大白兔</textarea>

console.log("简介:"+this.refs.jianjie.value); 

注意:这里log出来的是页面用户输入后的最终文字。

3、单选radio和多选checkbox,获取它们的值最好还是用一个公共变量如state来保存,因为它们的值只能在触发事件中获取,不像text控件可以后期提交时获取。初始值可以通过 defaultChecked={true} 来设置。

radio例子:

changeColor(e){
    console.log(e.target.value);
},
render(){
return(
<div onChange={this.changeColor}>
   <h2>选择你喜欢的颜色</h2>    
    <input type="radio" id="color1" name="color" value="red" /> 
    <label htmlFor="color1" >red</label>

    <input type="radio" id="color2" name="color" value="yellow"/>
    <label htmlFor="color2">yellow</label>

    <input type="radio" id="color3" name="color" value="green"/>
    <label htmlFor="color3">green</label>
</div>
)
}

如果是checkbox,用div包住不合适,因为div每次点击只能获取点击一次的值。所以checkbox需要写到每个checkbox 控件里面的onChange或onClick事件。可以通过一个state的数组来存储变更。checkbox例子:

changeColor(e){
    this.setState({color:e.target.value});
},
render(){
return(
<input type="checkbox" id="color1" name="color" value="red" onChange={this.changeColor} />
<label htmlFor="color1" >red</label>

<input type="checkbox" id="color2" name="color" value="yellow" onChange={this.changeColor} />
<label htmlFor="color2">yellow</label>

<input type="checkbox" id="color3" name="color" value="green" onChange={this.changeColor}  />
<label htmlFor="color3">green</label>
)
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 获取input的checked值是否为true: 第一种: if($("input[name=item][valu...
    西门小妖阅读 5,433评论 0 5
  • HTML标签解释大全 一、HTML标记 标签:!DOCTYPE 说明:指定了 HTML 文档遵循的文档类型定义(D...
    米塔塔阅读 8,655评论 1 41
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,384评论 19 139