【问题标题】:count number of misspelled words计算拼写错误的单词数
【发布时间】:2020-06-02 21:33:41
【问题描述】:

我有一个项目,我需要计算文本区域中拼写错误的单词数量,并在拼写错误过多时阻止提交 Web 表单。 JavaScript 编辑器 tinyMCE 用于输入表单。 PHP 脚本 spellcheckText.php 会计算拼写错误(如果有),并将 JSON 编码结果返回给浏览器。下面的代码示例:

 
    
        测试
            tinymce.init({
                选择器:“.standard-editor”,
                插件:“字数拼写检查器”,
                paste_as_text:假,
                主题:“现代”,
                品牌:假,
                content_style: ".mce-content-body {font-size:16px;font-family:Arial,sans-serif;}",
                browser_spellcheck:真,
                工具栏:“撤消重做”,
                spellchecker_rpc_url: '/simages/spellchecker/spellchecker.php',
                菜单栏:“工具”,
                状态栏:真,
                高度:“400”,
                宽度:“600”,
                paste_data_images:假,
                paste_enable_default_filters:假,
                paste_preprocess:函数(插件,参数){
                    args.content = '';
                }
  
            });
        脚本>
        

标签: javascript jquery tinymce-4


【解决方案1】:

以下是修改后的代码。 Taplar 指出了解决方案的路径,我错误地返回了错误。正确访问 tinyMCE 数据也有助于使事情正常进行。

```<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test</title>
    <link rel="stylesheet" src="/simages/css/bootstrap/3.3.7/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="/scripts/js/tinymce/js/tinymce/tinymce.min.js"></script>
    <script>
        tinymce.init({
            selector: ".standard-editor",
            plugins: "wordcount spellchecker",
            paste_as_text: false,
            theme: "modern",
            branding: false,
            content_style: ".mce-content-body {font-size:16px;font-family:Arial,sans-serif;}",
            browser_spellcheck: true,
            toolbar: "undo redo",
            spellchecker_rpc_url: '/path/to/spellchecker/spellchecker.php',
            menubar: "tools",
            statusbar: true,
            height: "400",
            width: "600",
            paste_data_images: false,
            paste_enable_default_filters: false,
            paste_preprocess: function(plugin, args) {
                args.content = '';
            }

        });
    </script>
    <script type="text/javascript">
        function checkWordCount() {
            var wordCount = tinyMCE.activeEditor.plugins["wordcount"].getCount();
            if (wordCount < 50) {
                alert("Need 50 words or greater for your text submission...");
                return false;
            }
            var essayContent = tinyMCE.activeEditor.getContent({format: 'text'});
            function getSpellCount(essayContent){
                return new Promise((resolve,reject) => {
                    jQuery(function($) {
                        var values = { 'str': essayContent };
                        console.log(values);
                        $.ajax({
                            type: "POST",
                            url: "/path/to/ajax/spellcheckText.php",
                            data: values,
                            success: resolve,
                            error: reject,
                        })
                    });
                })
            }
            var percentage = getSpellCount(essayContent);
            percentage.then(function(result){
                console.log(result);
                var grade = result.percentage;
                if(grade < 80){
                    alert("A number of misspelled words were detected. Please correct and submit again.");
                    return false;
                }
            }).catch(function (error) {
                console.log('Failed',error);
            });
        }
    </script>
</head>
<body>
<div class="container-fluid">
    <div class="form-group">
        <form method=POST action="/path/to/ajax/textWords.php" name="essayform" id="essayQuestion" onsubmit="event.preventDefault();checkWordCount();">
            <h3>$thesequestions{'text'}</h3>
            <p>
                <textarea name="textarea" class="standard-editor" id="essay"></textarea>
            </p>
            <br/>
            <input class="btn btn-primary" type="submit" value="Submit Text"/>
        </form>
    </div>
</div>
</body>
</html>```

【讨论】:

    猜你喜欢
    • 2014-11-10
    • 2015-05-06
    • 2010-10-16
    • 2018-11-25
    • 1970-01-01
    • 2018-12-07
    • 2021-10-05
    • 2020-12-20
    • 2020-10-26
    相关资源
    最近更新 更多