gpt4 book ai didi

javascript - jQuery 将光标设置为焦点输入字段的开头

转载 作者:行者123 更新时间:2023-11-30 07:07:16 26 4
gpt4 key购买 nike

我有一个输入框 <input value="@website.com" type="text" name="email" id="email">我想这样做,当用户关注这个字段时,它会将光标移动到 @website.com 之前.

我有以下 Javascript/jQuery 代码,但它似乎不起作用:

$(document).ready(function() {
$("#email").focusin(function(){
$("#email").focus();
$("#email")[0].setSelectionRange(0,0);
});
});

好像.focus()一直调用focusin()功能。

我知道$("#email")[0].setSelectionRange(0,0);是将光标移动到前面的正确方法,但是当字段具有焦点时如何将其绑定(bind)到?

编辑:所以当我使用时:

$("#email").focus(function(){
$("#email")[0].setSelectionRange(0,0);
});

当我跳入该字段时它会将光标设置到开头,但当我单击时则不会。

编辑 2:这不同于 enter link description here因为那只是获得插入符号的位置,而我正在寻找设置插入符号的位置。

最佳答案

这会将输入字段的 focusclick 事件绑定(bind)到该函数。希望这对您有所帮助!

$('#email').on('focus click', function() {
$(this)[0].setSelectionRange(0, 0);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" placeholder="Enter your name" autofocus>
<input type="text" id="email" value="@website.com">

或者,没有 jQuery...

document.getElementById('email').addEventListener('click', moveCursor);
document.getElementById('email').addEventListener('focus', moveCursor);

function moveCursor(event) {
event.target.setSelectionRange(0, 0);
}
<input type="text" placeholder="Enter your name" autofocus>
<input type="text" id="email" value="@website.com">

关于javascript - jQuery 将光标设置为焦点输入字段的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51294827/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com