开发者

Get text input element having cursor (caret) in JavaScript

How to 开发者_如何学编程Get the text element (or its id) in which there is caret?


document.activeElement will give you this in most browsers.


Edit: Guess, I completely misunderstood the word "caret" as it stands for "cursor" in this context... not a native speaker. In case someone looks for a way to find the input which has the "^" character in its value:

Try this plain JavaScript code on jsfiddle:

var inputs = document.getElementsByTagName("input");
var ids = [];
for(var i = 0; i < inputs.length; i++) {
    if(inputs[i].value.match(/.*\^.*/)) {
      ids.push(inputs[i].id);
    }
}

It goes through all "input" elements and filters out those with a caret somewhere in their value. "ids" holds those ids.


if you mean how to get text box having focus the answer is you can't.

You could script to "onfocus" event, and record the last-focused field in a variable somewhere. You also have to use "onblur" event to clear last-focused field variable.

HTH

Ivo Stoykov


For example:

var elementWithFocus;

function updateFocus(callingElement)
{
    elementWithFocus = callingElement;
}

Then in your inputs:

<input onfocus="updateFocus(this);" onblur="updateFocus(null);"></input>

Play around with it on jsfidle.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜