我有一個文件上傳表單,我通過javascript在最終提交表單之前檢查文件大小。表單工作正常,當我嘗試上傳超過上述大小的文件時,它會在第一時間顯示正確的警報。但是如果我再次點擊上傳而沒有選擇另一個文件,我會得到相同的警報兩次。如果我再次重複這個過程,我會收到3次警報。下面是代碼在使用jQuery時提交多次執行的函數
<script>
var flag=0;
$('#filename').bind('change', function() {
var filesiz = this.files[0].size;
if (filesiz >10485760)
{flag=1;}
else
{flag=0;}
});
function upfunc(){
$('#smalldata').hide();
$('#invalidfile').hide();
$('#invalidfile9').hide();
if($("#UserComments").hasClass("textAreaField valid") && $("#filename").hasClass("valid")){
$('#loading_image').show(); // show animation
$("#uploadsfrm").submit(function() {
if(flag==1)
{alert ('File size cannot exceed 10 MB.');
$('#loading_image').hide();
return false;
//event.preventDefault();
}
else
return true;
});
}
}
</script>
我想錯誤可能是因爲我使用綁定。任何幫助將非常感激。謝謝
如果你不選擇另一個文件,同樣的文件仍然被選中,那麼爲什麼你會期望有不同的結果? – adeneo
但我不是能夠理解爲什麼第二次我收到警報兩次,然後是第三次警報增加到三次我又怎麼能解決這個問題? –
那是因爲你把事件處理程序放在一個函數中,並且每次都是upfunc ()運行時,會添加一個新的事件處理程序,並且會彈出另一個警報,其中包含兩個,然後是三個等。 – adeneo