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

React Typescript ant设计选定下拉禁用

康烨伟
2023-03-14

我使用我的大学项目react typescript和ant Design4,我在这方面有一些冲突。这里是我的冲突

我有一个选择选项1)年结束日期2)年月结束日期。所以当它加载第一,任何一个知道如何禁用当加载年结束日期和需要禁用结束日期选择选项任何解决方案

import React from 'react';
import ReactDOM from 'react-dom';
import 'antd/dist/antd.css';
import './index.css';
import { Form, Input, Button, Checkbox,Select } from 'antd';
const layout = {
  labelCol: {
    span: 8,
  },
  wrapperCol: {
    span: 16,
  },
};
const tailLayout = {
  wrapperCol: {
    offset: 8,
    span: 16,
  },
};
const { Option } = Select
const Demo = () => {
  const onFinish = (values) => {
    console.log('Success:', values);
  };

  const onFinishFailed = (errorInfo) => {
    console.log('Failed:', errorInfo);
  };
function onChange(value) {
  console.log(`selected ${value}`);
}

function onBlur() {
  console.log('blur');
}

function onFocus() {
  console.log('focus');
}

function onSearch(val) {
  console.log('search:', val);
}
  return (
    <Form
      {...layout}
      name="basic"
      initialValues={{
        remember: true,
      }}
      onFinish={onFinish}
      onFinishFailed={onFinishFailed}
    >
      <Form.Item
        label="Year End date"
        name="YearEndDate"
        rules={[
          {
            required: true,
            message: 'Please select date type!',
          },
        ]}
      >
   <Select
    showSearch
    style={{ width: 200 }}
    placeholder="Select a Year End date"
    optionFilterProp="children"
    onChange={onChange}
    onFocus={onFocus}
    onBlur={onBlur}
    onSearch={onSearch}
    filterOption={(input, option) =>
      option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0
    }
  >
    <Option value="yDate">Year End Date</Option>
    <Option value="yDM">Year Month End Date</Option>

  </Select>,
      </Form.Item>

      <Form.Item
        label="End Date"
        name="endDate"
        rules={[
          {
            required: true,
            message: 'Please seelct date!',
          },
        ]}
      >
       <Select
    showSearch
    style={{ width: 200 }}
    placeholder="Select a date"
    optionFilterProp="children"
    onChange={onChange}
    onFocus={onFocus}
    onBlur={onBlur}
    onSearch={onSearch}
    filterOption={(input, option) =>
      option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0
    }
  >
  <Option value="date1">28</Option>
    <Option value="date2">30</Option>
    <Option value="date3">31</Option>
    
  </Select>
      </Form.Item>

     

      <Form.Item {...tailLayout}>
        <Button type="primary" htmlType="submit">
          Submit
        </Button>
      </Form.Item>
    </Form>
  );
};

共有1个答案

訾俊名
2023-03-14

如果我正确理解了您的问题,那么您所问的是“如何禁用”结束日期“字段,如果”年结束日期“字段的值是”年结束日期“,或者当组件首次加载时。

如果是这种情况,可以使用react钩子查找“年终日期”字段的值,并使用它禁用第二个字段

下面是添加了钩子的代码:https://stackblitz.com/edit/react-xekm8s-plyist?file=index.js

 类似资料:
  • 我有两个按钮: > 用于批量订单 对于样品订单 默认情况下,当我单击下拉菜单时,这两个按钮都被禁用。值“1”,那么“样本订单Btn”应该被启用,当我点击下拉值,那么1“BUK订单”Btn应该被启用。 再次选择时,两个按钮都应禁用。这是我在select元素上的代码,它不工作,我不知道为什么。 null null

  • 问题内容: 我正在使用Angular JS,我需要使用angular JS设置下拉列表控件的选定选项。如果这很荒谬,请原谅我,但我是Angular JS的新手 这是我的html的下拉列表控件 填充后,我得到 如何设置要选择的控件? 问题答案: 希望我能理解您的问题,但是该指令在控件中的选定项目和的值之间创建了双向绑定。这意味着更改JavaScript或更改控件中的值会更新另一个。如果值为,则应选择

  • 目标:用户从下拉按钮中选择粒度(参见下面的HTML)。 粒度下拉更新以显示用户选择的值。 Ajax post在后台发生,所选值将通过MVC控制器读取。在这方面也需要一些帮助。 注意:我看了下面的帖子,用选择的值更新下拉列表。我使用Jai的解决方案的第二个版本 如何在引导按钮下拉列表标题中显示选定项 我有的问题是它错误地更新了页面上的另一个下拉列表。我需要它来更新基于id的下拉按钮,例如ID_gra

  • 问题内容: 我正在一个涉及使用PHP脚本自动填充选择框的网站上工作。一切都很好,除了问题是我用来填充文本框的标题非常长(它们是期刊文章和演示文稿标题)。下拉框延伸到最长元素的宽度,该元素延伸超出屏幕边缘,因此使滚动条无法触及。我尝试了多种尝试使用CSS手动将下拉框设置为特定宽度的方法,但到目前为止都无济于事。我最好地完成了将“选择”框设置为特定宽度的操作,但是下拉菜单本身的宽度要大得多。 任何对此

  • 本文向大家介绍jQuery自定义多选下拉框效果,包括了jQuery自定义多选下拉框效果的使用技巧和注意事项,需要的朋友参考一下 项目中需要自定义一个下拉框多选插件,业务问题还是自己实现比较好 通过$.fn 向jQuery添加新的方法 下拉数据通过参数传递进去,通过调用该插件时接收,选择后的确定与取消事件采用事件传递方式 代码如下:   1.效果图 2.代码 3.Jquery插件 4.页面调用示例

  • 本文向大家介绍MVC5下拉框绑定的方法(单选),包括了MVC5下拉框绑定的方法(单选)的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了MVC5下拉框单选绑定的具体代码,供大家参考,具体内容如下 1.Model 2.controller (1)先写一个程式绑定,可以通过数据库绑定或者直接绑定 (2)初始化,并传给视图 3.视图 select2是bootstrap的样式,js添加:$('