ajax實(shí)現(xiàn)的提交文章前進(jìn)行敏感詞審核的代碼
更新時(shí)間:2010年02月07日 09:23:44 作者:
在做“文章敏感詞匯審核”功能的時(shí)候,開始在把“審核”放在插入數(shù)據(jù)庫的時(shí)候,后來想有一個功能,能在用戶點(diǎn)擊“提交”按鈕的時(shí)候,給一個提示。這樣相對“友好”那么點(diǎn)。
于是想到在提交時(shí)返回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)多余,不過這樣比較保險(xiǎ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)多余,不過這樣比較保險(xiǎ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)文章
ajax傳遞多個參數(shù)的實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了ajax傳遞多個參數(shù)的實(shí)現(xiàn)代碼,簡單實(shí)用,感興趣的小伙伴們可以參考一下2016-05-05
AJAX實(shí)現(xiàn)鼠標(biāo)經(jīng)過彈出詳細(xì)介紹示例
鼠標(biāo)經(jīng)過彈出詳細(xì)內(nèi)容的效果想必大家都有見到過吧,其實(shí)很簡單,在本文為大家介紹下使用ajax實(shí)現(xiàn)此效果,感興趣的朋友可以參考下2013-09-09
Ajax實(shí)現(xiàn)靜態(tài)刷新頁面過程帶加載旋轉(zhuǎn)圖片
當(dāng)然你也可以使用jquery或者ajax寫動態(tài)加載table的方式來實(shí)現(xiàn),方式多種多樣,感興趣的朋友可以了解下,希望本文提供的靜態(tài)刷新頁面對你學(xué)習(xí)ajax有所幫助2013-02-02
JS AJAX前臺如何給后臺類的函數(shù)傳遞參數(shù)
這篇文章主要介紹了JS AJAX前臺給后臺類的函數(shù)傳遞參數(shù)的方法,下面有個不錯的示例,需要的朋友可以參考下2014-06-06
jQuery ajax中使用serialize()方法提交表單數(shù)據(jù)示例
使用jQuery ajax的serialize() 方法表單序列化為鍵值對(key1=value1&key2=value2…)后提交,下面是使用serialize()序列化表單的實(shí)例,感興趣的朋友可以參考下2013-10-10
[ASP.NET AJAX]Function對象及Type類的方法介紹
[ASP.NET AJAX]Function對象及Type類的方法介紹...2007-01-01
解決AJAX返回狀態(tài)200沒有調(diào)用success的問題
今天小編就為大家分享一篇解決AJAX返回狀態(tài)200沒有調(diào)用success的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
甩掉ashx和asmx使用jQuery.ajaxWebService請求WebMethod簡練處理Ajax
這篇文章主要介紹了甩掉ashx和asmx使用jQuery.ajaxWebService請求WebMethod簡練處理Ajax的相關(guān)資料,需要的朋友可以參考下2016-08-08

