我正在嘗試在多個輸入欄位中更改值時運行 jquery。例如:我有 6 個輸入型別file欄位。我想使用單個 jquery 函式對所有檔案欄位設定上傳限制。
為了實作這一點,我使用了這個 jquery 代碼
$('.image_size_check').change(function(){
$('.image_size_check').each(function(){
var sizeInKB = this.files[0].size/1024; //converting bytes into kb
var sizeLimit= 200;
if (sizeInKB >= sizeLimit) {
alert("Max file for image is 200KB");
$(this).val('');
}
});
});
但是這段代碼的問題是,這段代碼只有在我在第一個檔案欄位中進行更改時才會運行。當我在第二個欄位、第三個欄位等上選擇檔案時,此代碼不起作用。
如何onchange在頁面上存在的每個檔案欄位上選擇檔案時運行此代碼(不使用輸入欄位屬性的事件)
uj5u.com熱心網友回復:
您需要檢查控制臺錯誤。它清楚地告訴你問題。當您遍歷輸入時,只有第一個輸入有值,而其他輸入沒有任何值,因為它this.files是 null 并因此this.files[0].size導致錯誤:
$('.image_size_check').change(function() {
$('.image_size_check').each(function() {
if (this.files.length) {
var sizeInKB = this.files[0].size / 1024; //converting bytes into kb
var sizeLimit = 200;
if (sizeInKB >= sizeLimit) {
alert("Max file for image is 200KB");
$(this).val('');
}
}
});
});
Hello <input class="image_size_check" type="file" /><br />Hello <input class="image_size_check" type="file" /><br />Hello <input class="image_size_check" type="file" /><br />Hello <input class="image_size_check" type="file" /><br />Hello <input class="image_size_check"
type="file" /><br />Hello <input class="image_size_check" type="file" /><br />Hello <input class="image_size_check" type="file" /><br />Hello <input class="image_size_check" type="file" /><br />Hello <input class="image_size_check" type="file" /><br />Hello
<input class="image_size_check" type="file" /><br />
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/466624.html
標籤:jQuery
