ajax實現(xiàn)的提交文章前進行敏感詞審核的代碼
更新時間:2010年02月07日 09:23:44 作者:
在做“文章敏感詞匯審核”功能的時候,開始在把“審核”放在插入數(shù)據(jù)庫的時候,后來想有一個功能,能在用戶點擊“提交”按鈕的時候,給一個提示。這樣相對“友好”那么點。
于是想到在提交時返回Ajax傳遞的布爾值。而實際上,Ajax傳遞的函數(shù)get2()是chkfull(bt)的子函數(shù),不能向外部函數(shù)進行傳值,alert()也不起作用。所以干脆取消了“提交”按鈕的“提交”類型,而使用Javascript進行一系列檢查后,自動提交表單。
代碼如下
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("正文為必填。");//判斷文章內容是否為空
return false;
}
else
{
var xHRObject=false;
if(window.XMLHttpRequest)//判斷瀏覽器內核
{
xHRObject=new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
xHRObject= new ActiveXObject("Microsoft.XMLHTTP");
}
function get2()//定義get2函數(shù),給onreadystatechange做準備。本函數(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;//關閉按鈕
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不能打括號,否則是將函數(shù)的返回值賦值給一個變量,而不是將本函數(shù)本身賦值給xHRObject.onreadystatechange(注釋1)
xHRObject.send(v);
}
}
代碼如下
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("正文為必填。");//判斷文章內容是否為空
return false;
}
else
{
var xHRObject=false;
if(window.XMLHttpRequest)//判斷瀏覽器內核
{
xHRObject=new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
xHRObject= new ActiveXObject("Microsoft.XMLHTTP");
}
function get2()//定義get2函數(shù),給onreadystatechange做準備。本函數(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;//關閉按鈕
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不能打括號,否則是將函數(shù)的返回值賦值給一個變量,而不是將本函數(shù)本身賦值給xHRObject.onreadystatechange(注釋1)
xHRObject.send(v);
}
}
相關文章
Ajax實現(xiàn)靜態(tài)刷新頁面過程帶加載旋轉圖片
當然你也可以使用jquery或者ajax寫動態(tài)加載table的方式來實現(xiàn),方式多種多樣,感興趣的朋友可以了解下,希望本文提供的靜態(tài)刷新頁面對你學習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()序列化表單的實例,感興趣的朋友可以參考下2013-10-10
[ASP.NET AJAX]Function對象及Type類的方法介紹
[ASP.NET AJAX]Function對象及Type類的方法介紹...2007-01-01
解決AJAX返回狀態(tài)200沒有調用success的問題
今天小編就為大家分享一篇解決AJAX返回狀態(tài)200沒有調用success的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
甩掉ashx和asmx使用jQuery.ajaxWebService請求WebMethod簡練處理Ajax
這篇文章主要介紹了甩掉ashx和asmx使用jQuery.ajaxWebService請求WebMethod簡練處理Ajax的相關資料,需要的朋友可以參考下2016-08-08

