我想检查一个元素是否可以输入,特别是 document.activeElement 以便我可以使用 shift+key 作为键盘快捷键,而不会妨碍用户输入任何可能关注的输入的能力。

我将如何决定一个元素是否能够输入?

最佳答案

使用 isContentEditable 属性

$('my-element-selector').is('[contenteditable="true"]')

或者
$('my-element-selector').get(0).isContentEditable

或者试试这个 fiddle
<div id='el1'></div>
<input id='inp1' type='text'>

function isEditable($element)
{
  return $element.is( "input:text:not(:disabled):not([readonly]), textarea:text:not(:disabled):not([readonly])" ) ;
}

console.log( isEditable( $('#el1') ) );
console.log( isEditable( $('#inp1') ) );

再次更新了 fiddle 以添加对更多输入 ty 的支持
function isEditable($element)
{
  return $element.is( "input[type!='radio'][type!='checkbox'][type!='date']:not(:disabled):not([readonly]), textarea:text:not(:disabled):not([readonly])" ) ;
}

关于javascript - JS/jQuery 检查元素是否可打字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34149423/

10-11 11:08