【问题标题】:Button click to turn on spell check按钮单击以打开拼写检查
【发布时间】:2016-06-23 10:07:47
【问题描述】:

我有一个包含spellcheck = "false" 的文本区域。我想要一个按钮,点击后会打开 spellcheck 并检查已输入内容的拼写。
目前,如果您在按钮单击后在文本框中输入任何其他内容,它会正确检查拼写。但是,我希望它可以拼写检查已经存在的内容,而无需在 textarea 中输入任何其他内容。

<textarea id="ta" spellcheck="false"></textarea>
<div>
   <input type="button" id="spell_btn" value="spell check">
</div>
$(document).on('click', '#spell_btn', null, function () {
    $("#ta").attr("spellcheck", "true");
});//close .click

https://jsfiddle.net/906dqtn6/5/

我尝试使用$('#ta').val() 重置值,但是 没有任何影响。

var x = $("#ta").val();
var y = " ";
$("#ta").val(y);
$("#ta").val(x);

提前致谢。

【问题讨论】:

  • 我希望这个想法能与你一起工作stackoverflow.com/questions/11794105/…
  • 抱歉问题和小提琴中的错字。是的。我在 html 和 jquery 的实际代码中都有拼写检查。还是不行。到目前为止尝试了两种解决方案。同样,问题在于它没有对已经输入的内容进行拼写检查。如果我输入更多,它会检查之前和之后输入的所有内容。但是如果我输入,然后按下按钮,它不会检查以前输入的内容。请看新的小提琴。 jsfiddle.net/906dqtn6/5

标签: javascript jquery html textarea spell-checking


【解决方案1】:

您的 HTML 属性应该是 spellcheck 而不是 spellchecker (w3schools) 并且 jQuery 应该是:

$("#spell_btn").on('click', function () {
    $("#ta").attr("spellcheck", "true");
});

一个想法是,也许您可​​以在您的元素上单击按钮时触发keypress 或keydown 事件。
因为spellcheck 似乎只在您键入时起作用(或当元素处于焦点时) ,单击按钮spellcheck 时可能会变为非活动状态。要触发这些事件:

$("button").on("click",function() {
    $('#ta').keydown();
    $('#ta').keypress();
    $('#ta').keyup();
    $('#ta').blur();
});

参考here

【讨论】:

  • 请看问题下方的评论
  • 请将contenteditable="true" 添加到您的元素。另外,你用的是什么浏览器?
  • 我只是尝试自己使用它,而不是在 IE 9 中不受支持 - 它似乎也不适用于 Chrome 最新版本。虽然 caniuse 另有说法caniuse.com/#search=spellcheck
  • 同时检查stackoverflow.com/questions/9390429/html5-spellcheck。这是一篇旧文章,但提到了正确的浏览器。似乎内置的 HTML 拼写检查不起作用(维护不善),所以第三方库可能是要走的路
  • 我正在使用 chrome 51 - 拼写检查通常有效,但在单击按钮后不会检查以前输入的文本,除非添加更多文本
【解决方案2】:

这是我编写的用于拼写检查的免费开源 Javascript 库:

https://github.com/LPology/Javascript-PHP-Spell-Checker

顶部有一个现场演示的链接。它的设计目的是在桌面文字处理器中具有拼写检查器的感觉。在对这些相同的选项不满意后,我写了它。

要使用,只需将 JS 和 CSS 文件包含到您的页面中,然后添加:

var checker = new sc.SpellChecker(
    button: 'spellcheck_button', // opens the spell checker when clicked
    textInput: 'text_box', // HTML field containing the text to spell check
    action: '/spellcheck.php' // URL of the server side script 
);

【讨论】:

    猜你喜欢
    • 2015-02-14
    • 1970-01-01
    • 2010-11-07
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 2017-05-01
    相关资源
    最近更新 更多