Selector :file
El selector :file selecciona elementos con
tipo file, que son campos de carga de archivos.
El equivalente de $(':file') es
$('[type=file]').
Dado que :file no pertenece a la especificación CSS,
para mejorar el rendimiento en navegadores modernos
es mejor usar [type='file'] en su lugar.
Sintaxis
Así seleccionamos elementos de tipo file:
$(':file');
Como con otros selectores de pseudoclase
(que comienzan con ':'), es mejor
poner el nombre de la etiqueta u otro selector antes de ':', de
lo contrario se aplicará el selector '*',
es decir, $(':file') se interpretará como
$('*:file'), por lo que es mejor
usar $('input:file') en su lugar.
Ejemplo
Seleccionemos todos los inputs de tipo file y
hagamos que tengan un fondo verde y un borde rojo usando el método
css:
<form>
<input type="button" value="button">
<input type="file">
<input type="password">
<button>button</button>
<input type="reset">
<input type="radio" name="test">
<input type="radio" name="test">
<input type="checkbox">
<input type="text">
</form>
<+javascript+>
$('form input:file').css({background: 'green', border: '2px red solid'});
$('form').submit(function(event) {
event.preventDefault(); // previene el envío del formulario
});
<-javascript->