将 jquery 拼写检查添加到动态生成的文本区域

发布于 2024-12-02 10:08:19 字数 778 浏览 1 评论 0原文

我正在尝试在我正在构建的应用程序上使用 Brandon Aaron 的 jquery 拼写检查器。

https://github.com/brandonaaron/jquery-spellcheck#readme

我已经设置脚本和拼写检查根据需要在作为原始页面代码一部分的文本区域上工作。拼写检查行为通过文档头部中的以下代码与相关字段关联:

$('#test4').spellcheck({ events: 'keyup' });

当我尝试将相同的行为添加到新的表单元素时,例如:

var textarea = $("<textarea>");
textarea.spellcheck({ events: 'keyup' });

[NB 最初有 $("").html()但已根据下面的建议更改了此设置并得到相同的错误]

我收到以下错误(来自谷歌浏览器控制台)

Uncaught TypeError: Object # has no method 'spellcheck'

我认为这是因为拼写检查器在某些时候关联了拼写检查方法与每个现有的textarea 但是当我创建一个新的时它没有这个方法?如果是这样,我如何将该行为与新元素关联起来?或者我走错了路?

非常感谢任何帮助。

谢谢,

德里克

I'm trying to use Brandon Aaron's jquery spellchecker on an application I'm building.

https://github.com/brandonaaron/jquery-spellcheck#readme

I have set up the scripts and spell checking works as required on text areas which are part of the original page code. The spellcheck behaviour is associated with the relevant fields by way of the following code in the head of the document:

$('#test4').spellcheck({ events: 'keyup' });

When I try to add the same behaviour to a new form element eg:

var textarea = $("<textarea>");
textarea.spellcheck({ events: 'keyup' });

[NB Originally has $("").html() but have changed this in light of advice below and get same error]

I get the following error (from google chrome console)

Uncaught TypeError: Object # has no method 'spellcheck'

I assume this is because the spellchecker has at some point associated a spellcheck method with each existing textarea but when I create a new one it doesn't have this method? If so how do I associate the behaviour with the new element? Or am I on the wrong track?

Any help greatly appreciated.

Thanks,

Derek

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

爱给你人给你 2024-12-09 10:08:19

拼写检查脚本是一个 jQuery 插件,因此它只能在 jQuery 对象上运行,而不能在 DOM 节点或 HTML 字符串上运行。正在做:

var textarea = $("<textarea/>");

// Note: you may need to insert the textarea into the document
// before calling the spellchecker. E.g. like this:
$('body').append(textarea);

textarea.spellcheck({ events: 'keyup' });

应该工作。

The spellcheck script is a jQuery plugin, so it can only be run on a jQuery object, not on a DOM node or HTML string. Doing:

var textarea = $("<textarea/>");

// Note: you may need to insert the textarea into the document
// before calling the spellchecker. E.g. like this:
$('body').append(textarea);

textarea.spellcheck({ events: 'keyup' });

should work.

败给现实 2024-12-09 10:08:19

我认为你需要:

var textarea = $("textarea");
textarea.spellcheck({ events: 'keyup' });

I think you need:

var textarea = $("textarea");
textarea.spellcheck({ events: 'keyup' });
哽咽笑 2024-12-09 10:08:19

你不应该将textarea分配给$.html(),因为这只是一个字符串,所以你不能将它链接到拼写检查,

typeof $("#notify-container").html() == string

所以它应该是:

var textarea = $("textarea");
textarea.spellcheck({ events: 'keyup' });

然后将textarea附加到正文或你想要的地方

you shouldn't assign textarea to $.html() because this is just a string so you can't chain it to spellcheck

typeof $("#notify-container").html() == string

so it should be:

var textarea = $("textarea");
textarea.spellcheck({ events: 'keyup' });

then append textarea to body or where you want it

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文