如何在 React 中使用 Material-UI 在 onFocus 事件的 Textfield 中选择部分文本?

Posted

技术标签:

【中文标题】如何在 React 中使用 Material-UI 在 onFocus 事件的 Textfield 中选择部分文本?【英文标题】:How select part of text in a Textfield on onFocus event with material-UI in React? 【发布时间】:2019-06-22 07:29:13 【问题描述】:

我在反应应用程序中有一个带有材料 -UI TextField 的模态表单,我有一个默认值,es。一个文件,我会在加载元素时只选择文件名而不选择扩展名....

我在标签 TextField 中做了这段代码:

<textField 
    value=value
    fullWidth
    autoFocus
    onFocus=event => 
    event.target.select() />

但这将选择文本字段内的所有文本。 如何只选择文本的一部分? 例如:如果我有 myfile.doc 我只会被选中 myfile 像这样

谢谢

【问题讨论】:

请附上MCVE代码***.com/help/mcve var filename = 'myfile.doc'; var filename_without_extension = filename.split('.')[0]; 但我必须在 textFiled bat 中显示扩展名而不是选择... 我想我回答了 ,但这会选择 textField 中的所有文本。如何只选择文本的一部分?例如:如果我有 myfile.doc,我只会选择 myfile。如果您有任何其他问题,请在第一条评论中听取@AlvinTheodora 的建议,这基本上意味着您必须改进/更新您的问题,或者发布另一个问题。您当前的代码没有为我们提供足够的信息来帮助您。 Selecting all text in html text input when clicked的可能重复 【参考方案1】:

使用setSelectionRange 结合lastIndexOf 方法查找最后一个. 的位置。

class App extends React.Component 
  handleFocus = event => 
    event.preventDefault();
    const  target  = event;
    const extensionStarts = target.value.lastIndexOf('.');
    target.focus();
    target.setSelectionRange(0, extensionStarts);
  
  
  render()
    return (
      <input
        value='myfile.doc'
        onFocus=this.handleFocus
      />
    )
  


ReactDOM.render(<App />, document.getElementById('root'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="root"></div>

【讨论】:

gazdagergo 完美非常感谢你,这正是我所需要的【参考方案2】:

我会使用拆分并获取数组的第一个条目。

text = "mydoc.doc";
console.log(text.split(".")[0]);

【讨论】:

但是有了这个,我的文本字段中只有文件的名称,我需要所有的名称,所以“mydoc.doc”但只有字符串 mydoc 的一部分会被选中跨度>

以上是关于如何在 React 中使用 Material-UI 在 onFocus 事件的 Textfield 中选择部分文本?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 React 中使用 Material-UI 在 onFocus 事件的 Textfield 中选择部分文本?

如何使 Material-UI Dialog 在 React 中工作

如何使用 Typescript 为 React 设置 Material-UI?

如何在 react-phone-number-input 中使用 material-ui TextField

如何更改 React Material-ui Drawer 菜单项间距?

React + Material-UI |如何创建水平滚动卡片?