ant-design中Input输入框在获取焦点时由于保留了上次输入内容而莫名出现了一个黑色背景的选择提示框,且选择提示框中的值后还会出现蓝色背景

一. 代码环境

“react”: “18.1.0”,
“antd”: “^4.20.5”,
“typescript”: “4.6.4”

二. 问题描述

ant-design-react中,Form组件里有个子组件Input,在Input组件获取焦点时,由于保存了上次的输入内容,显示出了一个提示框,背景是黑色,且提示框可以选择里面的内容。如下图:

在这里插入图片描述
当选中输入框的内容后,Input输入框会出现一个蓝色背景,如下图:

在这里插入图片描述
相关代码如下:

<Form layout='vertical' onFinish={onFinish}>
  {/* Task target start */}
  <Form.Item
    label='Task target'
    tooltip={getTooltipValue(
      '* TIP: The task target should be as clear as possible and can be quantified. The description needs to include the specific tasks completed and the corresponding number of rewards.',
      '424px'
    )}
    name='taskTarget'
    rules={[
      { required: true, message: 'Please enter task target' },
      {
        pattern: /^[a-zA-Z0-9_]+$/,
        message: 'The task objective must be composed of English, numbers or underscores',
       },
     ]}
   >
     <Input
       bordered={false}
       className={'common-style'}
       showCount
       maxLength={64}
       placeholder='Place an order at my shop store, no refundy'
      />
   </Form.Item>
 </Form>
三. 解决办法

3.1 若保留当前黑色的提示框,且去掉选中值后出现的蓝色背景

只需要修改对应的样式,把下面的CSS样式加到全局或当前页面即可

input:-internal-autofill-previewed,
input:-internal-autofill-selected {
  // -webkit-text-fill-color: #2a2d33;
  transition: background-color 5000s ease-out 0.5s;
}

如下图,当我们选中黑色提示框中的值后,也不会出现蓝色背景了

在这里插入图片描述
在这里插入图片描述
3.2 直接去除该提示框,不让黑色提示框显示

给input加上autoComplete="off"属性,让输入框不要记录输入的信息,代码如下:

<Form layout='vertical' onFinish={onFinish}>
  {/* Task target start */}
  <Form.Item
    label='Task target'
    tooltip={getTooltipValue(
      '* TIP: The task target should be as clear as possible and can be quantified. The description needs to include the specific tasks completed and the corresponding number of rewards.',
      '424px'
    )}
    name='taskTarget'
    rules={[
      { required: true, message: 'Please enter task target' },
      {
        pattern: /^[a-zA-Z0-9_]+$/,
        message: 'The task objective must be composed of English, numbers or underscores',
       },
     ]}
   >
     <Input
       autoComplete='off'
       bordered={false}
       className={'common-style'}
       showCount
       maxLength={64}
       placeholder='Place an order at my shop store, no refundy'
      />
   </Form.Item>
 </Form>

效果如下:输入框在获取焦点时,不再出现黑色提示框

在这里插入图片描述
(完)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是的,Ant Design Vue 的 Select 组件可以允许用户在下拉列表选择选项,同也可以手动输入内容。这个功能称为“可搜索的 Select”(Searchable Select)。 您可以使用 Ant Design Vue 组件库的 Select 组件,并设置 `show-search` 和 `filter-option` 属性来实现这个功能。示例代码如下: ```html <template> <a-select mode="multiple" :show-search="true" :filter-option="(input, option) => option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0" placeholder="请输入内容选择选项" :options="options" /> </template> <script> export default { data() { return { options: [ { label: '选项1', value: '1' }, { label: '选项2', value: '2' }, { label: '选项3', value: '3' }, { label: '选项4', value: '4' }, { label: '选项5', value: '5' }, ], }; }, }; </script> ``` 在上面的代码,我们设置了 `show-search` 为 `true`,这样就可以显示搜索框。同,我们还设置了 `filter-option` 属性,这个属性接收一个函数作为参数,这个函数用于判断某个选项是否可以显示在下拉列表。在这个函数,我们将输入内容和选项的标签进行比较,如果标签包含了输入内容,那么这个选项就被显示在下拉列表。 除了以上的属性设置外,您还可以根据需要进行其他的配置,比如设置 `mode` 属性为 'multiple' 可以允许多选,设置 `placeholder` 属性可以设置输入框的提示文本,等等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值