在 React 中如何使用 material-UI onFocus 事件的文本字段中的 select 部分文本?
How select part of text in a Textfield on onFocus event with material-UI in React?
我在 React 应用程序中有一个带有 material -UI TextField 的模态表单,我有一个默认值,es。一个文件,我会 select 只有文件的名称没有扩展名加载元素时....
我在标签 TextField 中编写了这段代码:
<textField
value={value}
fullWidth
autoFocus
onFocus={event => {
event.target.select()}} />
但这将 select textField 中的所有文本。
我怎样才能 select 只有一部分文字?
例如:如果我有 myfile.doc 我将只 selected myfile
像这样
谢谢
我会使用拆分并获取数组的第一个条目。
text = "mydoc.doc";
console.log(text.split(".")[0]);
结合使用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>
我在 React 应用程序中有一个带有 material -UI TextField 的模态表单,我有一个默认值,es。一个文件,我会 select 只有文件的名称没有扩展名加载元素时....
我在标签 TextField 中编写了这段代码:
<textField
value={value}
fullWidth
autoFocus
onFocus={event => {
event.target.select()}} />
但这将 select textField 中的所有文本。
谢谢
我会使用拆分并获取数组的第一个条目。
text = "mydoc.doc";
console.log(text.split(".")[0]);
结合使用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>