1. 程式人生 > >關於input的file框onchange事件觸發一次失效的新的解決方法

關於input的file框onchange事件觸發一次失效的新的解決方法

在google了眾多方法後,網上有這麼幾種方法:

1、替換掉原來的input框

2、remove原來的input框,然後在新增進新的一樣的input框

但是不知道為什麼非常不幸的是,怎麼弄我都弄不出。。

後來我腦袋突然閃過一個靈感,我在觸發了一次onchange事件後,他沒反應,是不是onchange事件沒有繫結,後來發現我的推測是正確的,然後我就重新給他綁定了一個onchange事件,測試通過!!!

問題解決!!

$("#targetFile").change(function(){
			var filename = $(this).val();
			$("#originalTargetFileName").val(filename);
		});
		
		$("#targetUpload").submit(function(){
			$.ajaxFileUpload({
				type: "post",
				url: "${pageContext.request.contextPath}/upload.do",
				secureuri:false,
				fileElementId:"targetFile",
				dataType: "json",
				success: function(result,status) {
					if (result.success == "1") {
						alert("上傳檔案成功!");
						var filename=getFileNameFromFilePath(result.fileRelativePath);
						$("#target_upload_info").html("<div>"+"檔案:"+filename+"   <a href='javascript:void(0)' onclick='deletefile("+"\""+result.fileRelativePath+"\",\"target\")'>刪除</a>"+"<br/></div>");
						$("#target_upload_info").css("visibility", "visible");
						$("#targetFileRelativePath").val(result.fileRelativePath);
					} else {
						$("#target_upload_info").html("檔案上傳失敗: " + result.msg);
						$("#target_upload_info").css({"visibility":"visible", "color":"red"});
					}
				},
				complete: function(xmlHttpRequest) {
					$("#targetFile").replaceWith('<input type="file" id="targetFile" name="upFile" style="display:none;"/>');
					$("#targetFile").on("change", function(){
						var filename = $(this).val();
						$("#originalTargetFileName").val(filename);
					});
				},
				error: function(data, status, e) {
					alert("檔案上傳失敗!");
				}
			});
			return false;
		});


相關推薦

關於input的fileonchange事件觸發失效解決方法

在google了眾多方法後,網上有這麼幾種方法: 1、替換掉原來的input框 2、remove原來的input框,然後在新增進新的一樣的input框 但是不知道為什麼非常不幸的是,怎麼弄我都弄不出。。 後來我腦袋突然閃過一個靈感,我在觸發了一次onchange事件後,他沒

html input的file檔案輸入onchange事件觸發失效解決方法

最近在做一個圖片上傳的功能,出現提交一次後,file輸入框的change事件無法再次觸發的bug,就是說提交一次後必須重新整理才能再次提交,這就坑了~ 於是想辦法解決它~ 在網上找了一些資料,找到這幾種

解決 html input file onchang 事件觸發失效問題

JS: $(function(){ $("#userFile").change(function(){ batchImportUser(); }); }) function batchImportUser(){ alert(1)

工作總結 頁面通過ajax 動態綁定 列表頁面 列表每項的事件 事件觸發

什麽 就會 clas 方法調用 ack gpo 註冊 沒有 ajax 遇到一個問題 困惑了兩天 頁面的事件不知道為什麽觸發多次 試了各種辦法 對比了之前的頁面 各種測試 不是js css 外部鏈接 重復加載問題 也不是嵌套的 div 問題 各種都試過 最終發現 是

Input type="file"上傳檔案change事件觸發解決方案

一、剛開始用法 $(function () { $("#file").change(excelUpload); }) excelUpload()函式內部就是提示是否確認上傳動作,一開始這樣寫只有在第一次選擇上傳檔案的時候觸發了excelUpload函式,顯然這樣是不行的。後來網上有人說快

實現多點選只觸發點選事件

$('.sumbit1').click(function () { $('.sumbit1').unbind();//在點選事件裡移除觸發事件 var pad = $('input:radio[name=info]:checked').val(); i

解決input file檔案chang事件觸發問題

$("#file1").live('change',function(){imageFormSubmit("1");}); 注意  file檔案上傳,必須設定file檔案的name 屬性

上傳檔案的input的change時間只能觸發的原因

html程式碼: <tr>     <td><label for="pic" style="font-weight:normal;">圖片</label

42 jQuery-使用one()方法繫結觸發事件

1.效果圖 2.html程式碼 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>42 jQuery-使用one()方法繫結觸發一次的

Jquery點選事件觸發解決方法

方案一: <script> $(function () { $("#all").click(function(){ if(this.checked){ $("#list :checkbox").attr

ASP.NET GridView 後臺繫結行點選行觸發SelectedIndexChanged,頁面重新整理後,只有頁的情況下,事件觸發

如題,小弟剛接觸asp.net不久,所以有很多不懂,望高手們不吝賜教。 下面進入正題,後臺程式碼如下 <pre name="code" class="csharp"> protected void GridView1_RowDataBound(object se

iOS解決按鈕短時間內多點選只觸發事件方法(開始寫部落格)

在上家公司做專案的時候,做了個60秒獲取驗證碼的功能,當時做了個定時器,按鈕觸發定時器,邏輯來講都是沒問題的,但是實際操作的時候,惡意的在短時間內多次點選那個獲取驗證碼按鈕,按鈕的點選事件被呼叫了多次,定時器從而也呼叫多次,本來一秒減一的事件變成了一秒減多,並且減到0

JQuery實現滑鼠滑動多,只觸發響應事件

正常在設定滑鼠滾輪事件的時候,一次滾動對應一次響應事件。但是按照使用者習慣,使用者一次滑動滑鼠滾輪的動作中,可能實際上滑鼠滾輪滾動了多次(通俗的講,就是使用者不會一下一下的滑動滾輪)。這樣實際上觸發了多次滾輪響應事件,無法達到理想中,使用者滑動一次滾輪,只產生一個動作的效果,

記input file元素change事件上傳失效問題

使用input file元素時上傳碰到兩個問題: change事件上傳一次後失效 相同檔案只能選擇一次(有上傳相同檔案的需求) 問題1:網上一搜很多碰到同樣問題的小夥伴,解決方案大致思路為上傳完成後替換原file元素的內容,然後重新繫結change事件,

input file change事件觸發

onchange後,生成一個新input type file代替舊的。 $('#inputFileID').replaceWith('<input name="fileToUpload" t

jquery hover事件觸發動畫

1、你可以使用jq的stop方法: $(div).stop(false, true).animate({'margin-top':'100px'},1000); 如果stop()的第一個引數為true,表示立即清除當前的動畫佇列,預設為fx;如果第二個引數為true,表示立即將當前正在執行的動畫置為它

關於ajaxFileUpload造成 input[type=file] change事件只能觸發的問題

現在發現的問題 通過js繫結的input[type=file] change事件只能觸發一次 原因 該問題並不是由change事件失效造成的,而是ajaxFileUpload外掛造成的,它會把原來的file元素替換成新的file元素,所以之前繫結的ch

iOS解決按鈕短時間內多點擊只觸發事件方法

end bind nbsp per dos cancel span 內多 perf - (void)unisversalButtonAcrion:(UIButton *)sender { [[self class] cancelPreviousPerformReq

關於jQuery中動態生成的點擊事件觸發的討論

get com pan .html 方法 執行 url wall itl 由於是動態生成的 點擊事件運用了jQuery裏面的on()方法,綁定在body上面,結果在程序裏面運行了兩次。參考了博客 利用on和off方法編寫高效的js代碼知道了很多在dom對象刪除以後,其聲明

全中國14億人不知道的秘密-錢寶網事件 “這讓世界一起抄中國”

就會 票務 view 發微博 京東 運營 新聞 人的 投資人 中國社會經濟發展歷史長河中, 每一個時期的經濟發展都有一定的特點,也都遵循著中國傳統文化和農業經濟的共同規律。經濟基礎對法律 、 政治、軍事、文化藝術乃至人們社會生活等各方面的影響是極其重大的,在社會發