<input id="archivo" name="archivo" type="file">
Итак, мое поле типа файла называется архивом, родителем которого является formIncidencia, так что я делаю, чтобы найти его:
$('#formIncidencia').find("[id='archivo']");
Это отлично работает, но когда я пытаюсь сделать:
$('#formIncidencia').find("[id='archivo']").files[0].size;
Это не работает так, и я загружаю файл, поэтому не знаю, что это происходит..
3 ответа
Вы забыли взять первый элемент, возвращаемый jQuery find
:
$('button').click(() => console.log($('#formIncidencia').find("[id='archivo']")[0].files[0].size));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="formIncidencia">
<input id="archivo" name="archivo" type="file">
</form>
<button>Log file size</button>
Я думаю, вы должны просто использовать один селектор для достижения этого:
$('button').click(() => console.log($('#formIncidencia > #archivo')[0].files[0].size));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="formIncidencia">
<input id="archivo" name="archivo" type="file">
</form>
<button>Log file size</button>
Кроме того, если ваша страница соответствует спецификации HTML, он не должен иметь более одного элемента с archivo
в качестве id
, поэтому даже #formIncidencia
будет излишним.
Использование $('#formIncidencia').find("[id='archivo']")
вернет массив совпадений, даже если у вас есть только одно поле ввода. Так что вам придется изменить его на $('#formIncidencia').find("[id='archivo']")[0].files[0].size;
.
Попробуйте следующее:
$('#formIncidencia').find('change', function() {
//this.files[0].size gets the size of your file.
alert(this.files[0].size);
});
bind()
считается устаревшим уже много лет
find()
find('change'
не имеет смысла
Похожие вопросы
Связанные вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.
id='archivo'
недостаточно для поиска файла, весьма вероятно, что вы назначаете один и тот же идентификатор нескольким полям. Это нарушает способность идентификаторов идентифицировать элементы.