当前位置: 首页 > 知识库问答 >
问题:

材料UI日期选择器无法显示错误/必需消息

艾翼
2023-03-14

我试图在日期选取器上显示验证错误消息,就像我们使用错误文本和错误样式属性对TextField执行的操作一样,但验证错误消息不适用于日期选择器。

我用的是素材-ui版“^0.18.7".

请在下面找到完整的功能。我不确定如何实现这个。我也知道errorText和errorStyle不是DatePicker的有效道具。我以为它适用于datepicker,但事实并非如此。有没有办法实现这一点。

import DatePicker from 'material-ui/DatePicker';

constructor(props){
   super(props)
   const dateYesterday = new Date();
   dateYesterday.setDate(dateYesterday.getDate() - 1);
   this.state={
      dob: null,
      dobError: '',
      dateYesterday: dateYesterday
   }
   this.changeDateOfBirth = this.changeDateOfBirth.bind(this)
}

changeDateOfBirth = (evt, date) => {
if(date == null || date == undefined){
  this.setState({
    dobError: 'Please select your date of birth'
  });
}else{
  this.setState({
    dobError: '',
    dob: date
  });
}
}
const errorStyle = {
    display: 'table'
}

<DatePicker 
    dialogContainerStyle={{position: 'absolute'}} 
    errorText={this.state.dobError} 
    errorStyle={errorStyle} 
    inputStyle={myTheme.inputStyleText} 
    underlineStyle={myTheme.underlineStyle} 
    underlineFocusStyle={myTheme.underlineStyle} 
    floatingLabelStyle={myTheme.floatingLabelStyle} 
    floatingLabelText="Date Of Birth" 
    hintText="Select Date Of Birth" 
    container="inline" 
    locale="en-US" 
    firstDayOfWeek={0} 
    autoOk={true} 
    value={this.state.dob} 
    onChange={this.changeDateOfBirth} 
    defaultDate={this.state.dateYesterday}
 >
 </DatePicker>

请建议。

共有1个答案

黄朗
2023-03-14

DatePicker将道具传播到子元素,因此您实际上可以使用TextField元素中的errorTexterrorStyle道具。例如,我在“^0.18.7”中测试了以下DatePicker,并且可以确认它显示了一条红色的错误消息:

<DatePicker hintText="Portrait Dialog" errorText="This is an error message." />

您应该知道,日期选取器中的 onChange 回调仅在选择日期时触发,因此 date 参数永远不会为 null 或未定义。换句话说,您永远不会输入以下 if 语句:

if(date == null || date == undefined){
  this.setState({
    dobError: 'Please select your date of birth'
  });
}

如果你想检查用户没有设置任何类型的日期的情况,考虑只检查你的DOB是否为空(我省略了不相关的道具以保持简短):

<DatePicker 
    errorText={this.state.dob ? {} : this.state.dobError} 
    errorStyle={this.state.dob ? {} : errorStyle} 
 >
 类似资料:
  • 问题内容: 我正在尝试将日期选择器添加到我的代码中,但是在内的上显示错误: 无法解析为变量 谁能帮我解决问题? 问题答案: 使用此代码可以解决您的问题,可以正常工作

  • 我已经记录了用于从日期选择器中选择日期的selenium代码。在运行测试用例时,日期选择器会弹出并正确突出显示所选日期。但是没有选择日期。代码如下所示:- 此异常仅出现在记录的代码中。我使用的是selenium-server-standalone-2 . 45 . 0 jar。

  • 我开发了android应用程序,不幸的是,在一些旧设备中它不工作...我只是在我的TextView上设置了单击监听器,它显示datePicker对话,在我的日期选择器代码中,只是将日期设置为相同的TextView。 在我的活动中: 我的日期选择器片段代码....所有这些代码都在我的单一活动中。 好心有人帮忙....谢谢:)

  • 问题内容: 我想使用swift在xcode中使用datePicker将星期几仅存储为字符串。 问题答案:

  • HTML与它的外观截图一起粘贴,如下所示。 HTML: 我曾经试过 甚至试图等待命令以使定位器被找到但没有成功。 WebDriverWait(驱动程序,100)。直到(预期条件.element可禁用)(By.css选择器 两者都不起作用,因为它无法识别元素。有人能帮我吗。如果可能,我们甚至可以单击“上一个”和“下一个”,以便我们也可以单击一些以前的日期吗?

  • 在grails中,通过使用jQuery UI插件,如何将域属性(日期周日期)设置为用户使用日期选择器功能选择的日期?