2012-09-12 74 views
2

我有此代碼消防JavaScript事件平變化的事件<INPUT TYPE =「文件」 />

<input id="fileupload" 
     type="file" name="files[]" 
     class="inputFile clickable" 
     onchange="uploadFile(this.value)"/> 

此使用能正常工作在第二時間,即第一次選擇onchange事件不文件火,但第二次選擇文件工作正常。

在這裏有什麼我可以改變的東西嗎?

我曾嘗試:

  • onlclick(不工作,選擇文件之前,火災)
  • onblur(不工作,不火都,再加上即使做,其只是愚蠢點擊別處頁面上火操作)
  • onselect(不工作)

其他信息: 如果我使用onchange=alert(this.value)它工作正常

這是我的javascript代碼

function uploadFile(value) { 
    alert(value); //works fine 
    $('#fileupload').fileupload({ 
     dataType: 'json', 
     url: 'fileUpload.php', 
     type: 'POST', 
     limitConcurrentUploads: 1, 
//  done: function (e, data) { 
//   $.each(data.result, function (index, file) { 
//    $('<p/>').text(file.name).appendTo(document.body); 
//   }); 
//  }, 
     success: function() { 
      showMultipleDataDiv(value); //but I don't get value here 
     } 
    }); 
} 
+0

相似的主題? http://stackoverflow.com/questions/2133807/alternate-to-onchange-event-in-input-type-file –

+0

是的,但這並沒有改變這種情況,我創建了一個新的輸入,它仍然在第二次觸發而不是第一。 – xaero

+1

你能發佈你的Javascript代碼嗎?那裏可能有一些錯誤? –

回答

1

代碼$('#fileupload').fileupload將觸發一個文件,只要用戶選擇上傳文件。您需要在用戶選擇文件之前運行此代碼,因爲它會向輸入標記添加事件偵聽器。由於您只在用戶選擇文件後運行此代碼,因此它只會在第二次運行。

這是你需要做的,使改變它的工作

$(function() { 
    $('#fileupload').fileupload({ 
    dataType: 'json', 
    url: 'fileUpload.php', 
    type: 'POST', 
    limitConcurrentUploads: 1, 
    //  done: function (e, data) { 
    //   $.each(data.result, function (index, file) { 
    //    $('<p/>').text(file.name).appendTo(document.body); 
    //   }); 
    //  }, 
    success: function() { 
     showMultipleDataDiv(value); //but I don't get value here 
    } 
    }); 
}); 

公告不存在需要在更改事件添加代碼。該插件將爲你做到這一點。

您可以在這裏閱讀更多關於:https://github.com/blueimp/jQuery-File-Upload/wiki/Basic-plugin

相關問題