6

你好我得到了类似的代码

<form method="post" action="/" name="form" autocomplete="off">
<input type="text" name="title" />
<textarea name="body"></textarea>
<input type="text" name="tags" />
<input type="submit" name="submit" value="Send" />
</form>

“textarea”是tinyMCE的地方......当我尝试通过输入和textarea项目移动选择时出现问题。加载页面时,它聚焦 input[name=text] 但是当我按 Tab 键时,它选择 input[name=tags] 而不是 textarea[name=body] (下一个)你能帮我解决这个问题吗?

4

5 回答 5

5

这对于传统的选项卡索引是不可能的,因为 TinyMCE 实际上隐藏了并在其中使用编辑器<textarea>创建了一个。<iframe>您可以通过在javascript中前一个元素的模糊事件中强制关注编辑器来解决这个问题,这是我头顶的一个jQuery:

$('#prev-input').blur(function(){
    tinyMCE.get('textarea').focus();
});

然后,一旦用户离开之前的输入焦点,就会跳转到 TinyMCE 编辑器,您可能还可以添加一个 blur() 方法来获取下一个元素。

于 2011-04-07T14:15:17.650 回答
4

我通过向插件添加 'tabfocus' 解决了这个问题,然后添加 tabfocus_elements : ":prev,:next"

http://tinymce.moxiecode.com/wiki.php/Plugin:tabfocus

http://tinymce.moxiecode.com/wiki.php/tabfocus_elements

于 2011-05-10T14:45:12.697 回答
3

有个插件解决了

http://sourceforge.net/tracker/index.php?func=detail&aid=1657397&group_id=103281&atid=738747

我从 TinyMCE 论坛知道的

http://tinymce.moxiecode.com/forum/viewtopic.php?id=813

于 2011-04-18T07:08:11.710 回答
1

我需要页面上另一个元素的自定义标签顺序。我用来在 IE11 中解决这个问题的代码是

var button = $('#btn-id');
button.on('keydown', function (e) {
    if ((e.which === 9 && !e.shiftKey)) {
        e.preventDefault();
        $(tinyMCE.get()[0].contentWindow).focus();
    }
});

请注意,仅当页面上只有一个编辑器时,上述代码才有效。否则,您将不得不遍历返回的数组tinyMCE.get()以找到正确的编辑器来设置焦点。

于 2017-02-08T18:12:54.523 回答
0

我发现focus事件正在被触发,但关注元素(容器)并没有一直有效。

在我的情况下,我从编辑器 1-4 中选择了选项卡,当我 shift+tab 时,我失去了对实例的关注。

为了解决这个问题,我在 tinyMCE 的设置事件中添加了以下内容

setup: function(editor) {
  editor.on("focus", function(e) {
    e.target.editorContainer.scrollIntoView();
  });
}
于 2019-12-10T12:55:07.367 回答