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

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手动将下拉框设置为特定宽度的方法,但到目前为止都无济于事。我最好地完成了将“选择”框设置为特定宽度的操作,但是下拉菜单本身的宽度要大得多。 任何对此

  • 问题内容: 我想创建一个下拉菜单,其中包含图像而不是文本作为选项。我在此处进行了一些Google搜索,然后在Stack Overflow上进行了搜索,通常给出的答案是使用jQuerycombobox。 在我看来,这种解决方案的问题在于您必须提供文本。看起来图像只是左侧文字的图标。如果我错了,请纠正我,但是此解决方案将无法解决我要尝试的工作- 完全用图像替换文本。 我正在尝试做的事情的一些背景知识-

  • 我正在创建一个演示站点的实践测试,然而,我在从下拉列表中选择一个值时遇到了一个问题,我无法找到元素,然而,它是正确的ID,我也尝试了ID和CSS选择器,但没有运气:(我将在下面发布HTML和Selenium代码: HTML Ruby代码: