繼上一個三級聯動的補充--使用jQuery編寫各種瀏覽器相容簡易專案
1.專案概述
專案使用的開發技術:hibernate+struts+ajax+jQuery+mysql
與上一個三級聯動不同的是:上一個專案是使用dom技術編寫的整個js程式碼,存在一定的不足與bug,即瀏覽器不相容,只在火狐中有成效,IE、opera、google等都不能相容。。。到底是哪個模組導致的不相容,本人目前正在測試中,歡迎有志之士一塊測試,對本人鞭策;這個專案改進了上一個專案的不同,使用輕量的jQuery技術編寫js的核心程式碼,不存在瀏覽器相容的問題(本人親測:IE、opera、火狐、google),而且程式碼更加簡化和邏輯化;核心程式碼的編寫採用了jQuery中提供的三種ajax介面的方法,來實現使用ajax技術的非同步通訊,具體見原始碼,其中有詳細的註釋;
轉載請指明出處:楊凱專屬頻道
完整專案(預設成1分了,忘了改變資源分值了,本來想0分上傳的,抱歉):tianyazaiheruan
2.專案原始碼
$(document).ready(
function() {
// jQery的第一個案例
// 呼叫ajax請求,js的原生格式,直接寫{}物件
$.ajax({
async : true, // 非同步傳送請求
type : "GET", // 採用傳送請求的方式,預設的是get,還有post方式
url : "./csdn/ProvinceAction_select.action?time="
+ new Date().getTime(), // 設定請求的url地址
dataType : "json", // 伺服器預返回的資料格式,改屬性有:html、text、xml、script等多種值型別
success : function(data, textstatus) { // 成功返回的回撥函式
// 獲取所有的省
var jsonPros = data.provinces;
// 遍歷省
for ( var i = 0; i < jsonPros.length; i++) {
// 得到具體的省
var jsonPro = jsonPros[i];
// 建立一個option的jQuery物件
var $proOpt = $("<option></option>");
// 為option物件設定屬性
$proOpt.attr("value", jsonPro.pid);
$proOpt.text(jsonPro.pname);
// 把建立的option省節點新增到省的select節點中
$("#province").append($proOpt);
}
},
error : function(xhr, textstatus, errorThrown) { // 失敗返回的回撥函式
}
});
// jQery的第二個案例
// 當省發生變化的時候出發的事件
$("#province").bind(
"change",
function() {
// 清空資料
$("#city")[0]=1;
$("#country")[0]=1;
// 對ajax的進一步封裝
// 傳遞的資料
var pid = $("#province").val(); //
$.get("./csdn/CityAction_select.action?time="
+ new Date().getTime(), // url請求的luj
{
pid : pid
}, // 請求傳遞的引數
function(data) { // 返回成功時的回撥函式
// 得到所有的市
var jsonCities = data.cities;
for ( var i = 0; i < jsonCities.length; i++) {
// 得到具體的市
var jsonCity = jsonCities[i];
// 建立一個option的jQuery物件
var $cityOpt = $("<option></option>");
// 為option物件設定屬性
$cityOpt.attr("value", jsonCity.cid);
$cityOpt.text(jsonCity.cname);
// 把建立的option節點省節點新增到市的select節點中
$("#city").append($cityOpt);
}
}, "json"); // 返回的資料型別
});
// jQery的第三個案例
$("#city").change(
function() {
// 清空資料
$("#country")[0]=1;
var cid = $("#city").val();
// post方法傳送ajax請求
$.post("./csdn/CountryAction_select.action?time="
+ new Date().getTime(), {
cid : cid
}, function(data) {
// 得到所有的市
var jsonCountries = data.countries;
for ( var i = 0; i < jsonCountries.length; i++) {
// 得到具體的城鎮
var jsonCountry = jsonCountries[i];
// 建立一個option的jQuery物件
var $countryOpt = $("<option></option>");
// 為option物件設定屬性
$countryOpt.attr("value", jsonCountry.tid);
$countryOpt.text(jsonCountry.tname);
// 把建立的option節點省節點新增到城鎮的select節點中
$("#country").append($countryOpt);
}
}, "json");
});
});
Struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<include file="www/csdn/project/resource/struts-constant.xml" />
<package name="csdn" namespace="/csdn" extends="json-default">
<action name="ProvinceAction_*" class="www.csdn.project.action.ProvinceAction"
method="{1}">
<result type="json">
<!-- 改配置引數為關鍵,如果不設定改引數json物件會預設載入城市類導致出現session已關閉的錯誤 -->
<param name="includeProperties">provinces\[\d+\]\.pid,provinces\[\d+\]\.pname</param>
</result>
<result name="input">/index.jsp</result>
</action>
<action name="CityAction_*" class="www.csdn.project.action.CityAction"
method="{1}">
<result type="json">
<param name="includeProperties">cities\[\d+\]\.cid,cities\[\d+\]\.cname</param>
</result>
<result name="input">/index.jsp</result>
</action>
<action name="CountryAction_*" class="www.csdn.project.action.CountryAction"
method="{1}">
<result type="json">
<param name="includeProperties">countries\[\d+\]\.tid,countries\[\d+\]\.tname</param>
</result>
<result name="input">/index.jsp</result>
</action>
</package>
</struts>
相關文章
- js中css樣式相容各個瀏覽器寫法JSCSS瀏覽器
- js相容各個瀏覽器的事件物件JS瀏覽器事件物件
- 相容各個瀏覽器的scrolltop屬性簡單介紹瀏覽器
- JS相容各個瀏覽器的本地圖片上傳即時預覽效果JS瀏覽器地圖
- HTML5+flash打造相容各瀏覽器的檔案上傳方案HTML瀏覽器
- 相容各主瀏覽器透明的CSS瀏覽器CSS
- gb2312簡繁轉換js相容各種瀏覽器JS瀏覽器
- 各種瀏覽器csshack瀏覽器CSS
- 網頁內容複製貼上(三種方案 相容多種瀏覽器)網頁瀏覽器
- 手機瀏覽器通過Scheme跳轉APP,相容各種手機瀏覽器瀏覽器SchemeAPP
- robot framework 使用三:他們主動瀏覽器的相容性Framework瀏覽器
- javascript實現的對相容各個瀏覽器事件封裝JavaScript瀏覽器事件封裝
- 編寫一個簡易計時器程式(edu)
- jQuery瀏覽器相容模組support詳解jQuery瀏覽器
- robot framework 使用三:瀏覽器相容性自己主動化Framework瀏覽器
- (16)CSS 擴充:① 瀏覽器相容 | CSSCSS瀏覽器
- SSH三大框架使用谷歌瀏覽器上傳檔案瀏覽器崩潰框架谷歌瀏覽器
- jquery的ajax方法在各個瀏覽器使用注意點jQuery瀏覽器
- javascript相容各個瀏覽器的獲取事件源物件程式碼JavaScript瀏覽器事件物件
- CSShack瀏覽器相容一覽表CSS瀏覽器
- 利用 Powershell 編寫簡單的瀏覽器指令碼瀏覽器指令碼
- jquery在瀏覽器滾動條上的應用jQuery瀏覽器
- 用jquery解決瀏覽器相容問題jQuery瀏覽器
- 相容所有瀏覽器的對聯廣告程式碼瀏覽器
- 編寫一個檔案補丁
- 使用KVM的API編寫一個簡易的AArch64虛擬機器API虛擬機
- 禁止頁面後退JS(相容各瀏覽器)JS瀏覽器
- [外掛擴充套件]jQuery二維碼外掛0.2【更新瀏覽器相容】套件jQuery瀏覽器
- CSS3常用到的相容各瀏覽器字首分享CSSS3瀏覽器
- css3各種型別瀏覽器字首簡單分享CSSS3型別瀏覽器
- WebView 詳解(簡易瀏覽器Demo)WebView瀏覽器
- css文字兩端對齊效果相容各瀏覽器CSS瀏覽器
- 使用瀏覽器命令列編寫JavaScript程式碼瀏覽器命令列JavaScript
- IE瀏覽器相容瀏覽器
- parseInt()瀏覽器相容瀏覽器
- 9:瀏覽器相容瀏覽器
- jQuery下獲取瀏覽器、可視範圍及其他的各種寬高jQuery瀏覽器
- javascript相容火狐等各瀏覽器的innerText屬性程式碼JavaScript瀏覽器