ajax實(shí)現(xiàn)的提交文章前進(jìn)行敏感詞審核的代碼
更新時間:2010年02月07日 09:23:44 作者:
在做“文章敏感詞匯審核”功能的時候,開始在把“審核”放在插入數(shù)據(jù)庫的時候,后來想有一個功能,能在用戶點(diǎn)擊“提交”按鈕的時候,給一個提示。這樣相對“友好”那么點(diǎn)。
于是想到在提交時返回Ajax傳遞的布爾值。而實(shí)際上,Ajax傳遞的函數(shù)get2()是chkfull(bt)的子函數(shù),不能向外部函數(shù)進(jìn)行傳值,alert()也不起作用。所以干脆取消了“提交”按鈕的“提交”類型,而使用Javascript進(jìn)行一系列檢查后,自動提交表單。
代碼如下
HTML
<input type="button" class="body" id="subm" name="subm" value="寫好了,發(fā)布出去"
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("正文為必填。");//判斷文章內(nèi)容是否為空
return false;
}
else
{
var xHRObject=false;
if(window.XMLHttpRequest)//判斷瀏覽器內(nèi)核
{
xHRObject=new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
xHRObject= new ActiveXObject("Microsoft.XMLHTTP");
}
function get2()//定義get2函數(shù),給onreadystatechange做準(zhǔn)備。本函數(shù)不能放在xHRObject.onreadystatechange=get2;的后面
{
if(xHRObject.readyState==4 && xHRObject.status==200)
{
var serverText=xHRObject.responseText;
if(serverText=="sense")
{
if(confirm("你的文章有敏感詞匯,確定要發(fā)布嗎?\n\r【是,發(fā)布】將被審核,請等待。\n\r【否,不發(fā)布】將返回界面,請修改字句。"))
{
bt.value="正在提交";
bt.disabled=true;//關(guān)閉按鈕
document.getElementById("userchksense").value="sense";//改變userchksense的值為sense,這樣,post到add.php就能直接檢查是否要鎖定本文,而不用再次檢查文章
document.form1.submit();//提交該表單
}
else//好像有點(diǎn)多余,不過這樣比較保險
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不能打括號,否則是將函數(shù)的返回值賦值給一個變量,而不是將本函數(shù)本身賦值給xHRObject.onreadystatechange(注釋1)
xHRObject.send(v);
}
}
代碼如下
HTML
復(fù)制代碼 代碼如下:
<input type="button" class="body" id="subm" name="subm" value="寫好了,發(fā)布出去"
onclick="chkfull(this)"/>//注意類型是“按鈕”
<input type="hidden" id="userchksense" name="userchksense" value="?"/>//嵌入一個隱藏的文本框,給Ajax傳值
Ajax的Javascript部分
復(fù)制代碼 代碼如下:
function chkfull(bt){
var content = document.getElementById("usercontent").value;
if(content=="")
{
alert("正文為必填。");//判斷文章內(nèi)容是否為空
return false;
}
else
{
var xHRObject=false;
if(window.XMLHttpRequest)//判斷瀏覽器內(nèi)核
{
xHRObject=new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
xHRObject= new ActiveXObject("Microsoft.XMLHTTP");
}
function get2()//定義get2函數(shù),給onreadystatechange做準(zhǔn)備。本函數(shù)不能放在xHRObject.onreadystatechange=get2;的后面
{
if(xHRObject.readyState==4 && xHRObject.status==200)
{
var serverText=xHRObject.responseText;
if(serverText=="sense")
{
if(confirm("你的文章有敏感詞匯,確定要發(fā)布嗎?\n\r【是,發(fā)布】將被審核,請等待。\n\r【否,不發(fā)布】將返回界面,請修改字句。"))
{
bt.value="正在提交";
bt.disabled=true;//關(guān)閉按鈕
document.getElementById("userchksense").value="sense";//改變userchksense的值為sense,這樣,post到add.php就能直接檢查是否要鎖定本文,而不用再次檢查文章
document.form1.submit();//提交該表單
}
else//好像有點(diǎn)多余,不過這樣比較保險
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不能打括號,否則是將函數(shù)的返回值賦值給一個變量,而不是將本函數(shù)本身賦值給xHRObject.onreadystatechange(注釋1)
xHRObject.send(v);
}
}
相關(guān)文章
ThinkPHP5 通過ajax插入圖片并實(shí)時顯示(完整代碼)
這篇文章主要介紹了ThinkPHP5 通過ajax插入圖片并實(shí)時顯示功能,本文給大家分享網(wǎng)站代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12AJax 把拿到的后臺數(shù)據(jù)在頁面中渲染的實(shí)例
今天小編就為大家分享一篇AJax 把拿到的后臺數(shù)據(jù)在頁面中渲染的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08巧用ajax請求服務(wù)器加載數(shù)據(jù)列表時提示loading的方法
下面小編就為大家?guī)硪黄捎胊jax請求服務(wù)器加載數(shù)據(jù)列表時提示loading的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04ajax提交session超時跳轉(zhuǎn)頁面使用全局的方法來處理
如果session超時,而且是ajax請求,就會在響應(yīng)頭里。再用一個全局的方法來處理,session超時要跳轉(zhuǎn)的頁面2013-11-11Ajax實(shí)現(xiàn)圖片上傳并預(yù)覽功能
這篇文章主要介紹了Ajax實(shí)現(xiàn)圖片上傳并預(yù)覽,需要的朋友可以參考下2018-06-06用ajax實(shí)現(xiàn)在單擊事件下加載一個DIV層的腳本
用ajax實(shí)現(xiàn)在單擊事件下加載一個DIV層的腳本...2007-11-11