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

时间:2011-10-30 09:11:16

标签: jquery

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

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

现在我需要将光标放在这样的位置:“丹麦,[这里]”。

这可能吗?

*更新*

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

$('#denmark').click(function(){     
   $('#searchBoxBig').val('Denmark, ');
});

3 个答案:

答案 0 :(得分:37)

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

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

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

   $(fieldSelector).focus();

   return false;
});

答案 1 :(得分:28)

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

您可以这样做:

var input = $("input");
input[0].selectionStart = input[0].selectionEnd = input.val().length;

答案 2 :(得分:6)

$(":input[name=xxxx]").focus();

啊,你需要光标在所有文本之后吗?看看这里:jQuery Set Cursor Position in Text Area它对输入而不是textarea是一样的。

如果您使用其他选择器,这也有效。