Nuevo en JS.
Estoy tratando de verificar si el elemento de entrada del archivo está vacío al enviar el formulario con jQuery / JavaScript. He pasado por un montón de soluciones y nada me funciona. Estoy tratando de evitar el /c/fakepath
(a menos que no haya otra opción)
<input type="file" name="videoFile" id="videoUploadFile" />
Esto no funciona:
var vidFile = $("#videoUploadFile").value;
La única forma en que puedo obtener el nombre del archivo es si uso lo siguiente:
var vidFile = document.getElementById("videoUploadFile").files[0].name;
Si no hay ningún archivo disponible, el código arroja un error:
no se puede leer el nombre de la propiedad de indefinido
lo que tiene sentido porque la matriz no está configurada. pero no puedo averiguar cómo hacer ningún manejo de errores con esto.
¿Cómo tomo correctamente el elemento de entrada del archivo videoUploadFile
, verifico si está vacío, arrojo un mensaje de error si está vacío?
fuente
.files.length
?var files = $('#formbody').find('input[type=file]').filter(function() { return $(this)[0].files.length > 0; });
Respuestas:
Simplemente verifique la propiedad de longitud de archivos , que es un objeto FileList contenido en el elemento de entrada
fuente
( document.getElementById("videoUploadFile").files.length === 0 )
Aquí está la versión de jQuery:
fuente
$('#videoUploadFile').get(0)
lo mismo que,$('#videoUploadFile')[0]
pero quizásget()
hace algunos controles de corduraPara comprobar si el archivo de entrada está vacío o no mediante el uso de la propiedad de longitud del archivo,
index
debe especificarse de la siguiente manera:fuente
Preguntas: ¿cómo comprobar si el archivo está vacío o no?
Respuesta: He resuelto este problema usando este código Jquery
fuente
Sé que llego tarde a la fiesta, pero pensé en agregar lo que terminé usando para esto, que es simplemente verificar si la entrada de carga del archivo no contiene un valor veraz con el operador not y JQuery así:
Tenga en cuenta que si está en un formulario, es posible que también desee ajustarlo con el siguiente controlador para evitar que se envíe el formulario:
fuente