如果单击按钮,如何强制光标进入输入字段?

时间:2018-05-31 15:07:51

标签: javascript html

我想说明的是我想要的。当用户点击文本时,文本将转换为输入字段。但是如果光标在点击时会在那里,那将是最好的。如何赚钱?

const input = () => {
  const field = document.querySelector('input');
  document.querySelector('p').style.display = 'none';
  field.style.display = 'block'
}
input{
  display: none
}
<p id='target' onClick='input()'>Click</p>
<input
  type='text' 
  value='type'
  name='name' 
/> 

2 个答案:

答案 0 :(得分:4)

不,you can't move the cursor using JavaScript但你可以做的是使用HTMLElement.focus()来关注元素,因此在键盘上输入将导致输入:

&#13;
&#13;
const input = () => {
  const field = document.querySelector('input');
  document.querySelector('p').style.display = 'none';
  field.style.display = 'block'
  field.focus() // focus the element
}
&#13;
input{
  display: none
}
&#13;
<p id='target' onClick='input()'>Click</p>
<input
  type='text' 
  value='type'
  name='name' 
/> 
&#13;
&#13;
&#13;

答案 1 :(得分:2)

  

如果可以聚焦,HTMLElement.focus()方法将焦点放在指定的元素上。

&#13;
&#13;
const input = () => {
  const field = document.querySelector('input');
  document.querySelector('p').style.display = 'none';
  field.style.display = 'block';
  field.focus();
}
&#13;
input{
  display: none
}
&#13;
<p id='target' onClick='input()'>Click</p>
<input
  type='text' 
  value='type'
  name='name' 
/> 
&#13;
&#13;
&#13;