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

所属分类: 网络编程 / AJAX相关 阅读数: 425
收藏 0 赞 0 分享
于是想到在提交时返回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);
}

}
更多精彩内容其他人还在看

理解jquery ajax中的datatype属性选项值

jquery中ajax的dataType属性用于指定服务器返回的数据类型,如果不指定,jQuery 将自动根据HTTP包MIME信息来智能判断,如果datatype选项不填写的话,会将返回的数据当成字符串处理。
收藏 0 赞 0 分享

基于Jquery ajax技术实现间隔N秒向某页面传值

这篇文章给大家介绍jquery ajax技术实现每隔一段时间向某页面传值,以及setinterval()方法的语法介绍,对本文感兴趣的朋友可以参考下
收藏 0 赞 0 分享

通过Ajax两种方式讲解Struts2接收数组表单的方法

使用struts2表单传值,可以传一个或者是作为一个对象的各个属性传,都非常灵活便捷。但是如果我们需要传一个数组并希望struts正确接收,该怎么处理呢?接下来,通过本文给大家介绍通过Ajax两种方式讲解Struts2接收数组表单的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

基于Jquery.history解决ajax的前进后退问题

本文主要给大家介绍基于Jquery.history解决ajax的前进后退问题,涉及到jquery前进后退相关方面的知识,本文内容经典,非常具有参考价值,特此把jquery前进后退相关知识分享在脚本之家网站供大家参考
收藏 0 赞 0 分享

使用HTML5中postMessage知识点解决Ajax中POST跨域问题

这篇文章主要介绍了使用HTML5中postMessage知识点解决Ajax中POST跨域问题的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

谈谈你对aja的理解(一、二)

Ajax是Asynchronous Javascript And XML的缩写,其作用通过Ajax可以使用Javascript语句来调用XMLHttpRequest对象,直接与服务器进行通讯,可以在不重载页面的情况下与服务器交换数据。
收藏 0 赞 0 分享

关于ajax对象一些常用属性、事件和方法大小写比较常见的问题总结

最近比较空闲,于是抽个时间整理些关于ajax方法的东东。在项目中经常发现ajax板块好多问题都是属性,方法,事件大小写不区分问题,最终导致了程序运行出现麻烦,下面给大家介绍关于ajax对象一些常用属性、事件和方法大小写比较常见的问题总结
收藏 0 赞 0 分享

Ajax请求session失效该如何解决

HTML + Servlet + Filter + jQuery 一般来说我们的项目都有登录过滤器,一般请求足以搞定。但是AJAX却是例外的,所以解决方法是设置响应为session失效。
收藏 0 赞 0 分享

编写轻量ajax组件02--浅析AjaxPro

ajaxpro虽然是一个比较老的组件,不过实现思想和源码还是很有借鉴价值的。接下来通过本篇文章给大家介绍编写轻量ajax组件02--浅析AjaxPro,感兴趣的朋友可以参考下
收藏 0 赞 0 分享

编写轻量ajax组件01-与webform平台上的各种实现方式比较

这篇文章主要介绍了编写轻量ajax组件01-与webform平台上的各种实现方式比较,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多