jQuery - 单击链接时将光标放在输入字段中

sko*_*ind 23 jquery

我想在单击特定链接后将光标放在输入字段中.我正在将它用于一个小型搜索引擎.

想象一下输入字段:[].然后一些链接添加字符串如:丹麦,英格兰等到输入字段.

现在我需要将光标放置如下:"丹麦,[这里]".

这可能吗?

*更新*

我现在正在使用此代码替换文本,您将如何添加"位置光标"-trick?

$('#denmark').click(function(){     
   $('#searchBoxBig').val('Denmark, ');
});
Run Code Online (Sandbox Code Playgroud)

Nic*_*zyk 41

是的,捕获锚点上的click事件可防止默认操作并专注于该字段.

函数上下文包含已单击的元素,因此您可以计算应用焦点调用的字段.

$(anchorSelector).live("click", function(e) {
   e.preventDefault(); 

   $(fieldSelector).focus();

   return false;
});
Run Code Online (Sandbox Code Playgroud)

  • 这是要走的路! (2认同)

ano*_*ard 28

您可以使用selectionStartselectionEnd属性设置光标在输入框中的位置.如果您不想选择任何文本,只需使它们彼此相等即可.

这是你如何做到这一点:

var input = $("input");
input[0].selectionStart = input[0].selectionEnd = input.val().length;
Run Code Online (Sandbox Code Playgroud)


Ari*_*iel 6

$(":input[name=xxxx]").focus();
Run Code Online (Sandbox Code Playgroud)

啊,你需要光标在所有文本之后吗?看看这里:jQuery在文本区域中设置光标位置它对输入而不是textarea的工作方式相同.

如果您使用其他选择器,这也适用.