#vue.js #vuejs2
#vue.js #vuejs2
Вопрос:
Привет, я пытаюсь проверить, не является ли файловый ввод пустым, поэтому я делаю это:
Мой HTML-код:
<input accept="image/jpeg, image/png, image/gif" type="file" class="form-control" v-on:change="onFileChange">
Я выполняю проверку с помощью кнопки:
<button
:disabled="I need to know what it'll be here ? !isDisabled : isDisabled"
type="submit"
class="btn btn-success btn-icon-split">
<span class="icon text-white-50">
<i class="fas fa-check"></i>
</span>
<span class="text">Guardar</span>
</button>
Но я не знаю, как это сделать, потому что у него нет v-model, и я не знаю, как проверить, пусто ли оно. Как я мог это сделать?
Спасибо
Ответ №1:
<div id="app">
<input type="file" @change="fileChange">
<button :disabled="noFiles">Submit</button>
</div>
const { createApp, ref } = Vue;
createApp({
setup() {
const noFiles = ref(true);
const fileChange = (e) => noFiles.value = !e.target.files.length;
return { noFiles, fileChange };
},
}).mount('#app');
new Vue({
el: '#app',
data: () => ({
noFiles: true,
}),
methods: {
fileChange(event) {
this.noFiles = !event.target.files.length;
}
}
});
Ответ №2:
Вам нужно что-то вроде этого:
data(){
return{
file: null,
}
}
methods: {
onFileChange(){
this.file = event.target.files[0];
},
}
и проверьте метод отправки кнопки:
if(this.file !== null){
//some code
}
Ответ №3:
Добавьте a ref
к входному файлу, затем внутри обработчика отправки проверьте this.$refs.file.files
длину :
<input accept="image/jpeg, image/png, image/gif" ref="file"
type="file" class="form-control" v-on:change="onFileChange">
save(){
console.log(this.$refs.file.files.length)
}
Комментарии:
1. Привет, но когда я использую это, он говорит [Vue warn]: Ошибка при рендеринге: «TypeError: не удается прочитать свойство ‘files’ неопределенного»:/ что это может быть? Я добавил ref=»file» и добавил this this.$refs.file . Файлы. длина до кнопки отправки: отключена
2. используете ли вы composition api?
3. я имею
setup
в виду, как в ответе @MattDeacalion4. Нет, я не использую setup, я просто делаю это в методе onFileChange(e){ console.log(e.target. файлы [0]); это. file = e.target . files[0]; }, моя вещь в том, как я могу добавить проверку, отключенную в кнопке
5. Я сделал то, что вы указали, но он говорит, что он не определен