Bij*_*jan 1 javascript jquery focus
我有一个输入字段<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);
});
});
Run Code Online (Sandbox Code Playgroud)
似乎.focus()一直在调用该focusin()函数。
我知道$("#email")[0].setSelectionRange(0,0);将光标移到最前面的正确方法是什么,但是当字段具有焦点时如何将其绑定到上面?
编辑:所以当我使用:
$("#email").focus(function(){
$("#email")[0].setSelectionRange(0,0);
});
Run Code Online (Sandbox Code Playgroud)
当我跳到该字段时,它将光标设置在开始处,但在单击时则不将其设置。
这会将输入字段的focusAND click事件绑定到该函数。希望这可以帮助!
$('#email').on('focus click', function() {
$(this)[0].setSelectionRange(0, 0);
})Run Code Online (Sandbox Code Playgroud)
<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">Run Code Online (Sandbox Code Playgroud)
或者,没有jQuery ...
document.getElementById('email').addEventListener('click', moveCursor);
document.getElementById('email').addEventListener('focus', moveCursor);
function moveCursor(event) {
event.target.setSelectionRange(0, 0);
}Run Code Online (Sandbox Code Playgroud)
<input type="text" placeholder="Enter your name" autofocus>
<input type="text" id="email" value="@website.com">Run Code Online (Sandbox Code Playgroud)