ajax实现的提交文章前进行敏感词审核的代码

于是想到在提交时返回Ajax传递的布尔值。而实际上,Ajax传递的函数get2()是chkfull(bt)的子函数,不能向外部函数进行传值,alert()也不起作用。所以干脆取消了“提交”按钮的“提交”类型,而使用Javascript进行一系列检查后,自动提交表单。
代码如下
HTML


代码如下:

<input type="button" class="body" id="subm" name="subm" value="写好了,发布出去"
onclick="chkfull(this)"/>//注意类型是“按钮”
<input type="hidden" id="userchksense" name="userchksense" value="?"/>//嵌入一个隐藏的文本框,给Ajax传值

Ajax的Javascript部分


代码如下:

function chkfull(bt){
var content = document.getElementById("usercontent").value;
if(content=="")
{
    alert("正文为必填。");//判断文章内容是否为空
    return false;

}
else
{
    var xHRObject=false;

if(window.XMLHttpRequest)//判断浏览器内核
    {
        xHRObject=new XMLHttpRequest();
    }
    else if(window.ActiveXObject)
    {
        xHRObject= new ActiveXObject("Microsoft.XMLHTTP");
    }

function get2()//定义get2函数,给onreadystatechange做准备。本函数不能放在xHRObject.onreadystatechange=get2;的后面
    {
        if(xHRObject.readyState==4 && xHRObject.status==200)
        {
            var serverText=xHRObject.responseText;
            if(serverText=="sense")
            {
                if(confirm("你的文章有敏感词汇,确定要发布吗?\n\r【是,发布】将被审核,请等待。\n\r【否,不发布】将返回界面,请修改字句。"))
                {
                    bt.value="正在提交";
                    bt.disabled=true;//关闭按钮
                    document.getElementById("userchksense").value="sense";//改变userchksense的值为sense,这样,post到add.php就能直接检查是否要锁定本文,而不用再次检查文章
                    document.form1.submit();//提交该表单
                }
                else//好像有点多余,不过这样比较保险
                return false;
            }    
            else
            {
                bt.value="正在提交";
                bt.disabled=true;
                document.getElementById("userchksense").value="nonsense";
                document.form1.submit();
            }

}
    }

var title=document.getElementById("usertitle").value;
    var tag=document.getElementById("usertag").value;
    var intro=document.getElementById("userintro").value;
    var content=document.getElementById("usercontent").value;

var v = "title="+title+"&tag="+tag+"&intro="+intro+"&content="+content;
    xHRObject.open("POST","../ajax/ajax.php",true);    
    xHRObject.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

xHRObject.onreadystatechange=get2;//此处的get2不能打括号,否则是将函数的返回值赋值给一个变量,而不是将本函数本身赋值给xHRObject.onreadystatechange(注释1)
    xHRObject.send(v);
}

}

(0)

相关推荐

  • ajax实现的提交文章前进行敏感词审核的代码

    于是想到在提交时返回Ajax传递的布尔值.而实际上,Ajax传递的函数get2()是chkfull(bt)的子函数,不能向外部函数进行传值,alert()也不起作用.所以干脆取消了"提交"按钮的"提交"类型,而使用Javascript进行一系列检查后,自动提交表单. 代码如下 HTML 复制代码 代码如下: <input type="button" class="body" id="subm" nam

  • Ajax上传图片及上传前先预览功能实例代码

    手头上有几个小项目用到了easyUI,一开始决定使用easyUI就注定了项目整体上前后端分离,基本上所有的请求都采用Ajax来完成.在文件上传的时候用到了Ajax上传文件,以及图片在上传之前的预览效果,解决了这两个小问题,和小伙伴们分享下. 上传之前的预览 方式一 先来说说图片上传之前的预览问题.这里主要采用了HTML5中的FileReader对象来实现,关于FileReader对象,如果小伙伴们不了解,可以查看这篇文章HTML5学习之FileReader接口.我们来看看实现方式: <!DOCT

  • SpringBoot实现过滤敏感词的示例代码

    过滤敏感词 1. 创建一个储存要过滤的敏感词的文本文件 首先创建一个文本文件储存要过滤的敏感词 在下面的工具类中我们会读取这个文本文件,这里提前给出 @PostConstruct // 这个注解表示当容器实例化这个bean(服务启动的时候)之后在调用构造器之后这个方法会自动的调用 public void init(){ try( // 读取写有"敏感词"的文件,getClass表示从程序编译之后的target/classes读配置文件,读之后是字节流 // java7语法,在这里的句子

  • python用类实现文章敏感词的过滤方法示例

    过滤一遍并将敏感词替换之后剩余字符串中新组成了敏感词语,这种情况就要用递归来解决,直到过滤替换之后的结果和过滤之前一样时才算结束 第一步:建立一个敏感词库(.txt文本) 第二步:编写代码在文章中过滤敏感词(递归实现) # -*- coding: utf-8 -*- # author 代序春秋 import os import chardet # 获取文件目录和绝对路径 curr_dir = os.path.dirname(os.path.abspath(__file__)) # os.path

  • js实现敏感词过滤算法及实现逻辑

    最近弄了一个用户发表评论的功能,用户上传了评论,再文章下可以看到自己的评论,但作为社会主义接班人,践行社会主义核心价值观,所以给评论敏感词过滤的功能不可少,在网上找了资料,发现已经有非常成熟的解决方案. 常用的方案用这么两种 1.全文搜索,逐个匹配.这种听起来就不够高大上,在数据量大的情况下,会有效率问题,文末有比较 2.DFA算法-确定有限状态自动机 附上百科链接确定有限状态自动机 DFA算法介绍 DFA是一种计算模型,数据源是一个有限个集合,通过当前状态和事件来确定下一个状态,即 状态+事件

  • SpringBoot使用前缀树过滤敏感词的方法实例

    目录 一.前缀树 二.敏感词过滤器 总结 一.前缀树 一般设计网站的时候,会有问题发布或者是内容发布的功能,这些功能的有一个很重要的点在于如何实现敏感词过滤,要不然可能会有不良信息的发布,或者发布的内容中有夹杂可能会有恶意功能的代码片段,敏感词过滤的基本的算法是前缀树算法,前缀树也就是字典树,通过前缀树匹配可以加快敏感词匹配的速度. 前缀树又称为Trie.字典树.查找树.主要特点是:查找效率高,但内存消耗大:主要应用于字符串检索.词频统计.字符串排序等. 到底什么是前缀树?前缀树的功能是如何实现

  • 基于Ajax表单提交及后台处理简单的应用

    首先先说下表单提交吧,要提交表单那么就得先收集表单数据(至于验证这个我就不说了,要说留下下次吧),有了jquery取个html的值还是简单$("xxid").val()等就完了,但如果一张表单收集的数据很多,像这样的表单又有很多张,那用此方法肯定麻烦死,并且容易眼花录错.所以,我们就可以简单的来定义一个收集规则,如在要回传到服务器的数据表单控件,可以做个标记,到时取的时候把这些标记的数据一起取回去. 就拿最简单的文体输入做例子吧<input type="text&quo

  • jQuery实现表单动态加减、ajax表单提交功能

    对于前端开发,我的归类是分2种层次,首先第一种是基于前端架构上的开发,有一些后台开发的同事会瞧不起搞前端的,他们认为前端无非是画个页面嘛,这就有点夜郎自大了.现在我了解的一些前端框架基本分为3个主流框架:ReactJs,Vue,angularjs,前两个还是目前的主流趋势.第二种就是基于市面上的一些非主流工具包,比如BUI,FLatUI等,再结合自己的dom操作. 好了,废话不多说了,本篇文章主要讲怎么去实现表单动态加减的效果,花了一天时间搞出来,特来分享一下.本文主要分为两部分: 一是页面表单

  • 浅谈jquery中ajax跨域提交的时候会有2次请求的问题

    我们平时在同域中请求页面什么的时候不会有这种情况,这种情况大多发生在移动端的跨域请求中发生的. 解决方法就是在服务端中加一层过滤HTTP请求的类型,把OPTION等不用的类型过滤掉.就是当请求为非 HTTP中的 GET 和 POST的时候就不执行下面的代码,这样就可以只执行一次请求了. 在ASP.NET中我们用 Request.ServerVariables["REQUEST_METHOD"] == "POST" 或者 Request.ServerVariables

  • django ajax提交评论并自动刷新功能的实现代码

    在试了很多次了,终于搞定了,上代码吧.(我用的是jQuery的ajax,不是原生的) js代码: <script> $(document).ready(function () { getcomment(); $('.comment-box button').click(function () { var comment_text = $('.comment-box textarea').val(); $.ajax({ type: 'POST', url: '/bbs/article/{{ ar

随机推荐