在網上看了很多辦法,現在將網上大部分說法總結如下:
網上說法:
原因:選擇一次后onchange事件沒有綁定到input標簽上;
解決辦法:拷貝一份input標簽的副本,每次選擇后對原input標簽進行替換。
我覺得網上給出的辦法每次都要做回調,太麻煩了。應該還有更簡單的做法。
探究input輸入框file類型第二次不觸發onchange事件的根本原因,可以知道:(1) 原來是 ajaxFileUpload 插件造成的,它會把原來的file元素替換成新的file元素,所以之前綁定的change事件就失效了。(2)上傳時,當第二次點擊同一個文件,由於value值沒有發生變化,無法觸發change/onchange事件。
所以,問題的關鍵是input 的value 值!!!
我的做法:
只需要在選擇一次后將input標簽的value屬性置為空即可,即$('#inputId').val('')
,簡單粗暴有效。