Javascript 日期字段在react中显示不正确

Javascript 日期字段在react中显示不正确,javascript,cordova,reactjs,Javascript,Cordova,Reactjs,我有一个输入字段,它的类型是日期,占位符是“输入您的日期”。但发生的事情是占位符没有显示在移动应用程序中。(我们正在使用html、css、bootstrap和react.js构建移动应用程序,并通过cordova进行移植)。因此,我跟随此链接,以获得出现的标签,当单击时,日期pop应出现。但这似乎不起作用,当检查chrome中的元素时,onfocus和onblur似乎正在消失。是否有任何方法使其在react中起作用 <ElementsBasket name='nextActionDate'

我有一个输入字段,它的类型是日期,占位符是“输入您的日期”。但发生的事情是占位符没有显示在移动应用程序中。(我们正在使用html、css、bootstrap和react.js构建移动应用程序,并通过cordova进行移植)。因此,我跟随此链接,以获得出现的标签,当单击时,
日期pop
应出现。但这似乎不起作用,当检查chrome中的元素时,onfocus和onblur似乎正在消失。是否有任何方法使其在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:我正在关注这个链接

显然,当输入类型为日期时,不能引入占位符,解决此问题的一种方法是动态更改焦点上的输入类型
,但这不是一种好的做法,我的建议是不要使用默认的日期选择器,而可以使用下拉列表


您也可以参考此内容。希望这对您有所帮助:)

显然,当输入类型为日期时,您不能引入占位符,解决此问题的一种方法是动态更改焦点上的输入类型
,但这不是一种好的做法,我的建议是不要使用默认日期选择器,您可以使用下拉列表


您也可以参考此内容。希望这对您有所帮助:)

在React中,您的事件应被称为
onFocus
onBlur
(注意大写)

编辑:

另一个问题是,您正在将处理程序设置为字符串-
onFocus=“(this.type='date')”
,它们应该是一个函数。因此,请像设置onChange事件一样设置它们-

 <input type="text" onFocus = {this._onFocus} onBlur={this._onBlur}

在React中,您的事件应称为
onFocus
onBlur
(注意大写)

编辑:

另一个问题是,您正在将处理程序设置为字符串-
onFocus=“(this.type='date')”
,它们应该是一个函数。因此,请像设置onChange事件一样设置它们-

 <input type="text" onFocus = {this._onFocus} onBlur={this._onBlur}
这更简单

<input
   type="text"
   onFocus={
    (e)=> {
      e.currentTarget.type = "date";
      e.currentTarget.focus();
     }
   }
   placeholder="dd/mm/yyyy"
/>

{
e、 currentTarget.type=“日期”;
e、 currentTarget.focus();
}
}
占位符=“dd/mm/yyyy”
/>
这更简单

<input
   type="text"
   onFocus={
    (e)=> {
      e.currentTarget.type = "date";
      e.currentTarget.focus();
     }
   }
   placeholder="dd/mm/yyyy"
/>

{
e、 currentTarget.type=“日期”;
e、 currentTarget.focus();
}
}
占位符=“dd/mm/yyyy”
/>
基本上,日期类型显示时带有默认占位符,即mm/dd/yyyy,这就是为什么我们的占位符属性没有显示为文本类型的原因

因此,我们可以使用事件处理程序
onFocus
onBlur
使其工作。 我们可以像这样在arrow函数结构中添加这些处理程序-

<input
  type="text"
  onFocus={(e) => (e.currentTarget.type = "date")}
  onBlur={(e) => (e.currentTarget.type = "text")}
  placeholder="No date found"
/>

基本上,日期类型显示时带有默认占位符,即mm/dd/yyyy,这就是为什么我们的占位符属性没有显示为文本类型的原因

因此,我们可以使用事件处理程序
onFocus
onBlur
使其工作。 我们可以像这样在arrow函数结构中添加这些处理程序-

<input
  type="text"
  onFocus={(e) => (e.currentTarget.type = "date")}
  onBlur={(e) => (e.currentTarget.type = "text")}
  placeholder="No date found"
/>


请检查我问题ps中的链接OK checked,但他似乎也在试图说你应该更改类型!而你的onfocus和onblur也在做同样的事情,如果你使用他的逻辑,那么你应该将类型更改为text-onblur,即使问题没有解决。onfocus和onblur甚至没有加载到reactCan中请尝试用onKeydownDude替换onchange,我的问题是onfocus和onblur甚至没有加载,在我的情况下,onfocus会使type=date,所以这不是firedPlease检查我问题ps中的链接OK检查过了,但他似乎也试图说你应该更改类型!而你的onfocus和onblur是d同样,如果你使用他的逻辑,那么你应该将类型更改为文本onblur,即使问题没有解决。onfocus和onblur甚至没有加载到react中。你可以尝试用onKeydownDude替换onchange吗?我的问题是onfocus和onblur甚至没有加载,在我的情况下onfocus会使类型=日期,所以s没有被炒鱿鱼问题仍然存在,伙计,我做了资本化。它们没有(聚焦和模糊)被加载!工作正常,只是有一个问题。我需要单击日期字段两次。第一次,type=“text”和占位符是“Next Action date”。当我使用onFocus type=“date”时“。因此,如果我在下一个操作日期单击,onFocus将被触发,并且再次出现一个白色按钮字段,该字段不会显示任何内容。整个问题在于这个空按钮。我不要这个按钮。所以当我点击这个按钮时,日历就会出现。我是否可以单击占位符Next Action Date并显示日历?我也试过了。但是没有结果,这也需要两步我不这么认为(看这里)。现在这是一个不同的问题,可能会因浏览器(Android版本)的不同而有所不同。老实说,我不认为像这样编写代码来切换输入类型是个好主意,可能会导致问题。我刚才回答了你的问题,为什么onfocus和onblur在ReactYea中不起作用,甚至我也有同样的感觉,但是有一个按钮上没有文本似乎并不好。问题仍然存在,伙计,我做了资本化。它们没有(聚焦和模糊)加载!除了有一个问题外,它工作正常。我需要单击日期字段两次。第一次type=“text”和占位符是“下一个操作日期”。当我使用onFocus type=“date”时。所以,如果我在下一个动作日期单击,onFocus将被触发,并且会再次出现一个白色按钮字段,它不会显示任何内容。整个问题在于这个空按钮。我不要这个按钮。所以当我点击这个按钮时,日历就会出现。我是否可以单击占位符Next Action Date并显示日历?我也试过了。但没有结果,也需要两个