我有一个输入字段的类型是日期和占位符是“输入您的日期”。但发生的是占位符没有显示在移动的应用程序。(我们正在使用html,css,bootstrap和react.js构建移动的应用程序,并通过cordova进行移植”)。所以我按照这个链接,让标 checkout 现,当点击date pop
时应该会出现。但这似乎不起作用,当检查铬元素时,焦点和模糊似乎消失了。有什么办法让它在React中工作吗?
<ElementsBasket name='nextActionDate'
data={this.props.newLead.get('actions').get('nextActionDate')}>
<div className="form-group">
<input type="text" className="form-control" onfocus="(this.type='date')" onblur="(this.type='date')"
placeholder="Type your date here.."
value={this.props.newLead.get('actions').get('nextActionDate')}
onChange={onFieldChanged.bind(this, 'actions.nextActionDate')}
/>
</div>
</ElementsBasket>
ps:我正在关注此链接Not showing placeholder for input type="date" field
5条答案
按热度按时间6jygbczu1#
在React中,您的事件应命名为
onFocus
和onBlur
(注解大写)https://facebook.github.io/react/docs/events.html
编辑:
另一个问题是,您将处理程序设置为字符串-
onFocus="(this.type='date')"
,而它们应该是一个函数。现在
this
引用包含渲染函数的对象,因此需要在该对象中实现适当的函数。xqkwcwgp2#
这样比较简单,
pengsaosao3#
基本上,date*类型会显示默认占位符,即mm/dd/yyyy,这就是为什么我们的**占位符属性 * 不会显示为text类型。
所以我们可以使用事件处理程序
onFocus
和onBlur
来使它工作。我们可以将这些处理程序添加到 arrow function 结构中,如下所示-output will be like this
第一个
希望对你有帮助,谢谢
w80xi6nr4#
显然,当输入类型为Date时,您不能引入保持器,解决此问题的一种方法是动态更改输入类型
on-focus
,但这不是一个好的做法,我的建议是不要使用默认的日期选择器,而是可以使用唐斯你也可以参考这个问题。希望这对你有帮助:)
e5nszbig5#