簡體   English   中英

jQuery:如何獲取文件上傳輸入字段的“值”

[英]jQuery: how to get “value” of file upload input field

是否可以使用javascript / jQuery確定用戶是否為特定輸入類型=“文件”字段選擇了文件?

我為ExpressionEngine(基於PHP的CMS)開發了一個自定義字段類型,允許用戶在Amazon S3上上傳和存儲他們的文件,但是最流行的EE托管服務設置了max_file_uploads限制為20.我想允許用戶上傳20個文件,再次編輯該條目以添加20個等等。不幸的是,在編輯條目時,初始的20個文件有一個“替換此圖像”文件輸入字段,似乎是在敲除上傳新圖像的可能性。 我希望在提交表單時通過javascript刪除任何未使用的文件輸入字段。

是 - 您可以讀取值,甚至可以根據需要綁定到change事件。

<html>
<head>
  <title>Test Page</title>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <script type="text/javascript">
  $(function()
  {
    $('#tester').change( function()
    {
      console.log( $(this).val() );
    });
  });
  </script>
</head>

<body>

<input type="file" id="tester" />

</body>
</html>

但是還有其他多上傳解決方案可以更好地滿足您的需求,例如bpeterson76發布。

此代碼將從表單中刪除所有空文件輸入,然后提交它:

HTML:

<form action="#">
  <input type="file" name="file1" /><br />
  <input type="file" name="file2" /><br />
  <input type="file" name="file3" /><br />
  <input type="file" name="file4" /><br />
  <input type="file" name="file5" /><br />

  <input type="submit" value="Submit" />
</form>

JavaScript的:

$(function() {
  $("form").submit(function(){
    $("input:file", this).filter(function(){
      return ($(this).val().length == 0);
    }).remove();
  });
});

示例: http //jsbin.com/axuka3/

這個上傳器非常適合我的目的: http//webdeveloperplus.com/jquery/ajax-multiple-file-upload-form-using-jquery/

使用它作為編碼基礎的好處是文件是異步上傳的,因此不需要一次限制為20個。 在用戶搜索時進行上傳有明確的UI好處。

如果你需要,調整大小也是一個非常好的功能!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM