对更改的反应输入不会触发
React input onChange won't fire
本文关键字:输入 更新时间:2023-09-26
我目前有这个简单的反应应用程序,我无法让这些onchange事件在我的一生中触发。
var BlogForm = React.createClass({
getInitialState: function() {
return {
title: '',
content: ''
};
},
changeTitle: function(event) {
var text = event.target.value;
console.log(text);
this.setState({
title: event.target.value
});
},
changeContent: function(event) {
this.setState({
content: event.target.value
});
},
addBlog: function(ev) {
console.log("hit hit");
},
render: function() {
return (
<form onSubmit={this.addBlog(this)}>
<div>
<label htmlFor='picure'>Picture</label>
<div><input type='file' id='picture' value={this.state.picture} /></div>
</div>
<div>
<input className="form-control" type='text' id='content' value={this.state.title} onChange={this.changeTitle} placeholder='Title' />
</div>
<div>
<input className="form-control" type='text' id='content' value={this.state.content} onChange={this.changeContent} placeholder='Content' />
</div>
<div>
<button className="btn btn-default">Add Blog</button>
</div>
</form>
);
}
});
有趣的是,当我使用 onChange={this.changeTitle (this)}
时,事件会触发,但 changeTitle
函数中的 ev 变量不正确。
尝试:
onChange={(evt) => this.changeTitle(evt)}
或:
onChange={this.changeTitle.bind(this)}
而不是:
onChange={this.changeTitle}
尝试将onChange移动到父div..这对我有用
接受的答案是正确的,但我想补充一点,如果您正在实现引导文档中提供的单选组按钮解决方案,请确保删除周围div 上的"数据切换"选项:
<div class="btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-secondary active">
<input type="radio" name="options" id="option1" autocomplete="off" checked> Active
</label>
</div>
如果保留上面的代码中所示的数据切换选项,则将忽略您自己添加到输入字段的 onClick 和 onChange 事件。
当你使用 :
onChange={this.changeTitle (this)}
React 将自动调用提到的函数。 你需要像这样调用函数:
onChange={this.changeTitle}
并且还要将您提到的函数更改为箭头函数,否则您不能在函数中使用"this"关键字。 在 none 箭头函数中,"this" 关键字不是函数的对象,因此无法访问变量。如果需要将参数传递给函数,则应使用其他方法,例如bind()
确保你没有给它一个已经给定的id。我不是为什么,但是使用类型文件输入的重复 ID 会阻止它工作。
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 可以't让我的if语句处理js中的html表单输入
- 名称输入的索引
- 如何编写HTML输入的JS内联
- 要求输入在数据列表中
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 如何将输入(type=text)从html表单传递到javascript函数
- 单击jquery清除输入值
- 而循环只设置php中输入字段中的第一个值
- 在输入字段中将最小金额设置为
- jQuery自定义验证比较多个输入的序列
- Sails.js:同时发布文本输入和一个文件
- 使用javascript检查多个输入值,并在1次检查中标记多个输入框
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- 使用jquery在单击时在单元格中输入值
- Ajax文件加载和<输入>文件加载
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 将值输入到对象,然后该对象推送到数组
- 如果我在javascript中输入无效的电子邮件或空白,如何显示特定的文本框边框红色