Witam serdecznie, gdzieś coś przeoczam (takie słowo lub neologizm

) ciągle. Mam inputa zasłoniętego spanem
<span id="spanFront" class="btn-file text-center">Dodaj
<input id="photoFront" name="photoFront" type="file" /></span>
no i po załączeniu pliku chcialbym zeby cos w tym spanie sie zmienilo, bo mimo ze dodje zdjecie to nie wiem czy jest, cz nie ma, wiec dodalem
if ($('#photoFront')[0].files.length > 0) {
$('#spanFront').html('Zmień plik
<input id="photoFront" name="photoFront" type="file" />');
}
konsola pusta, to rowniez znaczy ze w ogole nie dziala - tylko gdzie i dlaczego?
@EDIT
działa natomiast jako funkcja w pureJS, a jak to przerobic na jquery?
<span id="spanFront" class="btn-file text-center">Dodaj
<input id="photoFront" name="photoFront" type="file" onchange="checkFile()" /></span>
function checkFile() {
var x = document.getElementById('photoFront');
if ('files' in x) {
if (x.files.length > 0) {
document.getElementById('spanFront').innerHTML = 'Zmień plik
<input id="photoFront" name="photoFront" type="file" onchange="checkFile()" />';
}
}
}
#EDIT 2
ok to teraz mam problem już

wyjaśniam: kod, który podam poniżej jest już taki jaki sobie chciałem napisać, natomiast o ile w pierwszym przypadku (photoFront i spanFront) mogę sobie wielorazowo zmieniać plik i jego nazwa jest updateowana fajnie, nie mogę tego samego zrobić w przypadku 2 (Side) i 3 (Back). Tzn, jak zalacze plik jest ok, ale jak juz go chce zmienic, wywalaja mi bledy w konsoli:
index.php?page=dodaj-pomiar:587 Uncaught TypeError: Cannot use 'in' operator to search for 'files' in null
at checkFile (index.php?page=dodaj-pomiar:587)
at HTMLInputElement.onchange (index.php?page=dodaj-pomiar:1)
<div class="u-image" style="background-image: url('./img/photoFront.jpg');"></div> <div class="title text-justify" style="margin-top: 12px; font-size: 13px; line-height: 16px;"><b>Zdjęcie od przodu
</b><br><br>Pamiętaj, że nie musisz pokazywać swojej twarzy, ważne jest aby oświetlenie było odpowiednie.
</div> <span id="spanFront" class="btn-file text-center">Dodaj
<input id="photoFront" name="photoFront" type="file" onchange="checkFile('spanFront', 'photoFront')" /></span> <div class="u-image" style="background-image: url('./img/photoSide.jpg');"></div> <div class="title text-justify" style="margin-top: 12px; font-size: 13px; line-height: 16px;"><b>Zdjęcie od boku
</b><br><br>Nie napinaj brzucha ani nie nabieraj za dużo powietrza. Zachowaj prostą postawę.
</div> <span id="spanSide" class="btn-file text-center">Dodaj
<input id="photoSide" name="photoSide" type="file" onchange="checkFile('spanSide', 'photoSide')" /></span> <div class="u-image" style="background-image: url('./img/photoBack.jpg');"></div> <div class="title text-justify" style="margin-top: 12px; font-size: 13px; line-height: 16px;"><b>Zdjęcie od tyłu
</b><br><br>Napnij przy okazji ręce i pokaż się w całej okazałości.
<br><br></div> <span id="spanBack" class="btn-file text-center">Dodaj
<input id="photoBack" name="photoBack" type="file" onchange="checkFile('spanBack', 'photoBack')" /></span>
function checkFile($span, $photo) {
var x = document.getElementById($photo);
if ('files' in x) {
if (x.files.length > 0) {
document.getElementById($span).innerHTML = 'Zmień plik
<br><small>(' + x.files[0].name + ')
</small> <input id="photoFront" name="photoFront" type="file" onchange="checkFile(\'' + $span + '\', \'' + $photo + '\')" />';
}
}
}
#EDIT LAST
dziękuję za wysłuchanie mojego monologu i pomoc, oczywiscie nie zauwazylem podstawowego bledu jaki zrobilem, czyli powinno byc tak w skrypcie:
function checkFile($span, $photo) {
var x = document.getElementById($photo);
if ('files' in x) {
if (x.files.length > 0) {
document.getElementById($span).innerHTML = 'Zmień plik
<br><small>(' + x.files[0].name + ')
</small> <input id="' + $photo + '" name="' + $photo + '" type="file" onchange="checkFile(\'' + $span + '\', \'' + $photo + '\')" />';
}
}
}
pogadałem, pogadałem - teraz mozna zamknąć