向活动输入字段添加值

Add value to the active input field

如何为所有 input 字段中的活动输入字段添加值?

我使用 autofocus 属性得到 "the_field" ,它没有 return 任何东西。

香草 JS

首先提供您可能想要添加内容的所有输入到某个 class,让我们称之为 input-field。如果你使用的是 vanilla JS,你可以像这样做 JS:

//Get the focused element.
var focused = document.activeElement;

//Check that it is one of the elements you want to add stuff to.
if(hasClass(focused, 'input-field')) {
    //Add whatever you want to add, lets say a number "3".
    focused.value = focused.value + '3';
}

其中 hasClass 是一个函数,用于检查元素是否具有特定的 class(从 here 中窃取):

hasClass(el, cls) {
    if (!el.className) {
        return false;
    } else {
        var newElementClass = ' ' + el.className + ' ';
        var newClassName = ' ' + cls + ' ';
        return newElementClass.indexOf(newClassName) !== -1;
    }
}

或者(正如 Edwin Reynoso 所指出的),如果您认为您的代码在版本 10 以下的 IE 中不受支持,您可以使用 classList.contains():

if(focused.classList.contains('input-field')) {
    ...

如果您不想添加额外的 class 而只是检查它是否是文本类型的输入,您可以这样检查:

if(focused.tagName == 'input' && focued.getAttribute('type') == 'text') {
    ...

jQuery

或者,如果您更喜欢使用 JQuery,您可以在没有额外功能的情况下完成它:

focused = jQuery(':focus');

if(focused.hasClass('input-field')) {
    focused.val(focused.val() + '3');
}

同样,如果您想跳过 class 并检查输入类型文本,只需使用此:

if(focused.is('input[type=text]')) {
    ...

又见这个问题:"How to get the focused element with jQuery?"