我希望在单击特定链接后将光标放在输入字段中。我正在将它用于一个小型搜索引擎。
想象一下输入字段:[]。然后一些链接添加了一个字符串,如:丹麦,英格兰等。输入字段。
现在我需要将光标放在这样的位置:“丹麦,[这里]”。
这可能吗?
*更新*
我现在正在使用此代码替换文本,您将如何添加“位置光标”-trick?
$('#denmark').click(function(){
$('#searchBoxBig').val('Denmark, ');
});
答案 0 :(得分:37)
是的,捕获锚点上的click事件可以防止默认操作并专注于该字段。
函数上下文包含已单击的元素,因此您可以计算应用焦点调用的字段。
$(anchorSelector).live("click", function(e) {
e.preventDefault();
$(fieldSelector).focus();
return false;
});
答案 1 :(得分:28)
您可以使用selectionStart
和selectionEnd
属性设置光标在输入框中的位置。如果您不希望选择任何文本,只需使它们彼此相等。
您可以这样做:
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是一样的。
如果您使用其他选择器,这也有效。