向活动输入字段添加值
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?"
如何为所有 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?"