1. 程式人生 > >專案日記_springMVC 學習雜記 4

專案日記_springMVC 學習雜記 4

本臺插播一條重要新聞,下面寫的東西中,用紫色標註的都TM有問題(關於onpropertychange問題,select聯動的change是可以觸發到的),我去年買了個大滑鼠,網上的東西不能輕信,關鍵onsubmit那個是從w3c上看到的,是我理解錯了,還是IE出補丁了,還是本就瀏覽器相容問題,以後一定要對自己寫的東西負責啊,大書包

1.JS檔案飄紅,clean一下就OK了,一般都是IDE的問題

2.路徑問題

:在Servlet中,"/"代表Web應用的跟目錄。和物理路徑的相對錶示。例如:"./" 代表當前目錄,"../"代表上級目錄。

需要呼叫web-inf下的js  用絕對路徑掉,或者要用 request 取專案路徑 然後拼出js的路徑來調

3.request獲取路徑:轉自ItEye


4.form表單提交 

4.1 dom中submit

html DOM中

Submit 物件代表 HTML 表單中的一個提交按鈕 (submit button)。

在 HTML 表單中 <input type="submit"> 標籤每出現一次,一個 Submit 物件就會被建立。

在表單提交之前,觸發 onclick 事件控制代碼,並且一個控制代碼可以通過返回 fasle 來取消表單提交。

您可以通過遍歷表單的 elements[] 陣列來訪問某個提交按鈕,或者通過使用document.getElementById(),或者使用jquery。來得到這個submit物件

formObject.submit()

該方法提交表單的方式與使用者單擊 Submit 按鈕一樣,但是表單的 onsubmit 事件控制代碼不會被呼叫。

Form 物件的 onsubmit 屬性指定了一個事件控制代碼函式。當用戶單擊了表單中的 Submit 按鈕而提交一個表單時,就會呼叫這個事件控制代碼函式。注意,當呼叫方法Form.submit() 時,該處理器函式不會被呼叫。

如果 onsubmit 控制代碼返回 fasle,表單的元素就不會提交。如果該函式返回其他值或什麼都沒有返回,則表單會被提交。

提示:由於 onsubmit 控制代碼可以取消表單的提交,所以它對於進行表單驗證是十分理想的。

提示:可以用iframe來實現無重新整理提交表單

<form action="*****.action" id="form1" name="form1" encType="multipart/form-data"  method="post" target="hidden_frame" >   
    <input type="file" id="file" name="file" style="width:450">   
    <INPUT type="submit" value="上傳檔案"><span id="msg"></span>   
    <br>   
    <font color="red">支援JPG,JPEG,GIF,BMP,SWF,RMVB,RM,AVI檔案的上傳</font>                 
    <iframe name='hidden_frame' id="hidden_frame" ></iframe>   
</form>   

    4.2 引用jquery.form.js,是要在1.7以上(on函式是在1.7以上才支援的)?忘了 

好處是可以有成功失敗等回撥函式,最關鍵的是可以指定重新整理區域,比如下面的修改 頭像完了,重新整理頭像的例子

'<form id="updateUser"  method="post" action="addOrUpdateUserInfo.view" enctype="multipart/form-data"> ',
'<input type="file" id="uploadImg" name="uploadImg" class="filetext"/>',
'<a id="submitImage" class="ckm-btn " disabled="disabled">提交</a>',
'<span></span>',
'</form>',

var options = {   
target:        '#mydiv',   // 需要重新整理的區域  
//beforeSubmit:  showRequest,  // 提交前呼叫的方法  
//success:       showResponse  // 返回後笤俑的方法  
// other available options:   
//url:       url         // 提交的URL, 預設使用FORM  ACTION   
//type:      type        // 'get' or 'post', override for form's 'method' attribute   
//dataType:  null        // 'xml', 'script', or 'json' (expected server response type)   
//clearForm: true        // 是否清空form  
//resetForm: true        // 是否重置form  
// $.ajax options can be used here too, for example:   
//timeout:   3000   
};   

$("#submitImage").on("click",function(){
	$("#addOrupdateUser").ajaxSubmit(personalOptions);
}) 
$("#uploadImg").on("propertychange",function(){
	$("#submitImage").next().text("");
	$("#submitImage").removeAttr("disabled");
});
function showPersonal(){
	$("#personalImg").attr("src","queryImageById.view?refresh="+Math.random());
	$("#submitImage").attr("disabled","disabled").next().text("提交成功");
}

'<img id="personalImg" class="personalImg"  src="queryImageById.view?refresh="'+Math.random()+'/>'

1.propertychange 是IE8獨有屬性,
這個問題來自IE(LTE8)中對checkbox和radio change事件的實現問題,在IE(LTE8)中測試下來,當你點選一個checkbox或者radio,它的change事件是不會立即觸發,除非你讓它失去焦點,而在其他標準瀏覽器中(包括IE9),是點選後立即觸發change事件的,這的確是個蛋疼的問題,說到解決方法,倒也比較容易,用IE(LTE8)中元素特有的propertychange事件來處理(IE9已經沒這玩意兒了),就能避免上述問題如:
checkEl.attachEvent('onpropertychange', function() {
console.log('hey man, I am changed');
});
 但是這樣就認為解決了,是不充分的,因為像checkEl.setAttribute('data-value', 'god')這樣的操作也會觸發其propertychange事件,所以我們需要用其event.propertyName來判斷下,如:
checkEl.attachEvent('onpropertychange', function() {
if(window.event.propertyName == 'checked')
console.log('blah blah blah...');
});
2.加上Math.random()的目的是讓每次請求不同
瀏覽器會把請求快取,如果你的請求相同,他會優先讀快取,所以加上一個隨機數,儘量保證每次請求的URL都不同


相關推薦

專案日記_springMVC 學習雜記 4

本臺插播一條重要新聞,下面寫的東西中,用紫色標註的都TM有問題(關於onpropertychange問題,select聯動的change是可以觸發到的),我去年買了個大滑鼠,網上的東西不能輕信,關鍵onsubmit那個是從w3c上看到的,是我理解錯了,還是IE出補丁了,還是

【機器人學】機器人開源專案KDL原始碼學習:(4)機械臂逆動力學的牛頓尤拉演算法

  機械臂的逆動力學問題可以認為是:已知機械臂各個連桿的關節的運動(關節位移、關節速度和關節加速度),求產生這個加速度響應所需要的力/力矩。KDL提供了兩個求解逆動力學的求解器,其中一個是牛頓尤拉法,這個方法是最簡單和高效的方法。    牛頓尤拉法演算法可以分為三個步驟: step1:

實習過程學習4):java跨專案訪問

要從一個專案訪問另一個專案的方法或者頁面有幾種方式:1、讓另一個專案打包成一個jar包,然後將jar包作為當前專案的一個依賴包,這樣就可以在當前專案裡直接呼叫另外一個專案的方法了。 2、在另外一個專案正在執行的情況下,通過介面地址從當前專案向另外一個專案傳送請求,以實現

windows 下通過apache2.4 部署django2.0.4專案(小專案或測試學習)

#宣告:我說是原創不一定是原創,你們誰發現我盜了,跟我留言。tks.#能力有限,掉坑裡爬了老久才爬出來。視訊教程看N遍...不說了,說多了就是血淚!!(為自己備份記憶)《持續更新》先說重點(大家都知道瀏覽器只能對字串進行識別,所以web服務返回的都是字串,隨著瀏覽器功能增加,

Robot Operating System (ROS)學習筆記4---語音控制

sla 語音 出現 tput http 學習 process 輸入 ubun 搭建環境:XMWare Ubuntu14.04 ROS(indigo) 轉載自古月居 轉載連接:http://www.guyuehome.com/260 一、語音識別包 1、安裝

構建之法學習4

控制 重要 protect 運算 包裝 二義性 lin c++ 基類 本周學習的內容是兩人合作 計算機只關心編譯生成的機器碼,你的程序采用哪種縮進風格,變量名有無統一的規範等,與機器碼的執行無關。但是,做一個有商業價值的項目,或者在團隊裏工作,代碼規範相當重要。“代碼規

ES6標準學習4、數組的擴展

nts 特征 strong 擁有 find() 條件 fin 位置 fine 數組的擴展 一、類數組對象與可遍歷對象轉換為數組 Array.from()方法用於將類數組對象、可遍歷對象轉換為數組,其中可遍歷對象包括es6新增的set和map結構 所謂的類數組對象,本質特

Python學習雜記_1_PyCharm使用的一些收獲

pear 最好 nts wid pycha col default ges 使用 一. 界面及字體的調整 裝好PyCharm默認的界面是白色的,編輯區域和Console區域的字體也比較小。我個人比較喜歡界面是黑底的,主要關註區域上的字體,大一些,看著清楚一些。調整辦法是這樣

Python學習雜記_2_字符串相關的一些操作

操作 lan put lease float for pan pytho 字符 name=input("Please input your name: ") sex=input("Please input your sex: ") print("Welcom"+name

Python學習雜記_5_列表常用操作

列表 查看 關鍵字 zha python學習 操作 開始 def 刪除列 列表操作 列表時用方括號括起來的一組元素值,是可變變量,可通過下表取值,也可以通過下表來修改值,列表中的元素是有序的,可以是不同的基本數據類型,如: names=[1, 2, 3, “abc”, “d

基於Qt的OpenGL可編程管線學習4)- 使用Subroutine繪制不同光照的模型

qt opengl shader subroutine 使用Subroutine在shader中封裝不同的函數,在CPU端選擇調用那個函數效果如下圖所示左側:環境光中間:環境光 + 漫反射右側:環境光 + 漫反射 + 高光1、Subroutine 在shader中的內容subroutine v

Python學習雜記

方便 存在 叠代 [] word ams lang com func Python中關鍵字yield有什麽作用? 首先得理解generators,而理解generators前還要理解iterables: 你可以用在for...in...語句中的都是可叠代的:比如lists,

ESP8266學習筆記4:ESP8266的SmartConfig

rtc 訂閱號 new 例程 detail smart ted tracking 不能 今天花了將近一天的時間來研究ESP8266的SmartConfig功能,這個應該算是wifi雲產品的標配。這篇文章先把SmartConfig操作一遍,我還寫了還有一篇文章梳理了物理層

有趣的Ruby-學習筆記4

all 庫文件 scrip 。。 trac module 由於 content pos Ruby塊塊。在我看來就是插入一段可變的函數block_name{ statement1 statement2 .......... }看起來不知道是什麽,只是別急

OAuth2.0學習4-1)Spring Security OAuth2.0 - 代碼分析

endpoint manager authent work cor tro 過程 pro efi 1、org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter

Python學習筆記4 高級特性_20170618

don 全部 one cat rate for 切片 表示 ict # 切片(獲取list / tuple / 字符串 中指定的元素) l = list(range(10)) l[0:3] l[:3] # 0可以省略 l[:] # 全部 l[3:] # 最後的可以省略 l

OAuth2.0學習4-4)關於系統中有多少個 authenticationManager

imp lan 需要 o-c detail session oauth ref nag 文章參考: http://blog.csdn.net/foggysource/article/details/39456963 首先是http的配置,authentication-m

OAuth2.0學習4-11)spring-oauth-server分析 - http元素使用的是何種AuthenticationManager?

認證 lte filters -1 oauth2 authent spring src 自己 1、在加載配置文件定義時,判斷使用哪個AuthenticationManager 在配置文件Security.xml加載時,首先創建一個ProviderManager

Java學習4):統計一個文件中的英文,中文,數字,其他字符以及字符總數

port let args str reader 文件路徑 要求 cnblogs pub 要求:統計一個文件中的英文,中文,數字,其他字符以及字符總數(此隨筆以txt文件為例) import java.io.BufferedReader; import java.io.F

(MYSQL學習筆記4)事務的開啟、提交、回滾

mysql 事務 使用事務要註意以下三點:1、在 MySQL 中只有使用了 Innodb 數據庫引擎的數據庫或表才支持事務。2、事務處理可以用來維護數據庫的完整性,保證成批的 SQL 語句要麽全部執行,要麽全部不執行。3、事務用來管理 insert,update,delete 語句MYSQL 事務處理