Selektor file
Selektor :file wybiera elementy z
typem file, które są polami do przesyłania plików.
Odpowiednikiem $(':file') jest
$('[type=file]').
Ponieważ :file nie należy do specyfikacji CSS,
dla lepszej wydajności we współczesnych
przeglądarkach lepiej zastosować
[type='file'].
Składnia
W ten sposób wybieramy elementy z typem file:
$(':file');
Podobnie jak w przypadku innych selektorów pseudoklas
(zaczynających się od ':'), przed ':' lepiej
umieścić nazwę tagu lub innego selektora, w
przeciwnym razie zostanie zastosowany selektor '*',
czyli $(':file') będzie postrzegany jako
$('*:file'), więc zamiast tego lepiej
użyj $('input:file').
Przykład
Wybierzmy wszystkie inputy z typem file i
zróbmy im zielone tło i czerwoną ramkę za pomocą metody
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(); // zapobiega wysłaniu formularza
});
<-javascript->