简体   繁体   中英

Get text input element having cursor (caret) in JavaScript

如何获取有插入符号的文本元素(或其ID)?

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.

document.activeElement将在大多数浏览器中为您提供此功能。

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 .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM