Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

216
Views
How can I preview my image before upload?

so I have created a form that previews the image before uploading, below is how I created it

<div class="w-full mt-1 ml-2">
    <div class="w-full flex left_flex gap-3">
        <div class="overflow-hidden w-10 h-10 shrink-0 rounded-full center_flex bg-gray-100 shadow-sm ring-1 ring-slate-200">
            <span class="material-symbols-outlined text-slate-300" id="dummy_img">account_circle</span>
            <img src="" alt="" class="w-full h-full object-cover hidden" id="display_photo">
        </div>
        <button type="button" id="choose_photo" class="p-1 shrink-0 hover:bg-green2 hover:text-blue-text rounded ring-1 text-sm ring-slate-300 hover:ring-green2">Choose photo</button>
        <span class="text-sm max-w-[20rem] Oneline" id="display_filename"></span>
    </div>
    <input type="file"  accept="image/*" name="user__photo" id="user__photo" class="hidden" onchange="user__photo(event)">
</div>

and my user__photo function is:

    const user__photo = (event) => {
         document.getElementById('dummy_img').classList.add('hidden');

         var display = document.getElementById('display_photo');
         display.classList.remove('hidden')

         display.src = URL.createObjectURL(event.target.files[0]);
         display.onload = function() {
              URL.revokeObjectURL(display.src)
         }
    }

but the console says user__photo is not a function...

can anyone tell me why?

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Change const user__photo = (event) => { to function user__photo (event) {

It's working here: https://jsbin.com/mamodafibe/2/edit

about 4 years ago · Juan Pablo Isaza Report

0

    function user__photo (event) {
      console.log('file changed')
      console.log(event)
    }
<div class="w-full mt-1 ml-2">
    <div class="w-full flex left_flex gap-3">
        <div class="overflow-hidden w-10 h-10 shrink-0 rounded-full center_flex bg-gray-100 shadow-sm ring-1 ring-slate-200">
            <span class="material-symbols-outlined text-slate-300" id="dummy_img">account_circle</span>
            <img src="" alt="" class="w-full h-full object-cover hidden" id="display_photo">
        </div>
        <button type="button" id="choose_photo" class="p-1 shrink-0 hover:bg-green2 hover:text-blue-text rounded ring-1 text-sm ring-slate-300 hover:ring-green2">Choose photo</button>
        <span class="text-sm max-w-[20rem] Oneline" id="display_filename"></span>
    </div>
    <input type="file"  accept="image/*" name="user__photo" id="user__photo" class="hidden" onchange="user__photo(event)">
</div>

about 4 years ago · Juan Pablo Isaza Report

0

const user__photo = (event) => {
      alert('file changed')
    }
<div class="w-full mt-1 ml-2">
    <div class="w-full flex left_flex gap-3">
        <div class="overflow-hidden w-10 h-10 shrink-0 rounded-full center_flex bg-gray-100 shadow-sm ring-1 ring-slate-200">
            <span class="material-symbols-outlined text-slate-300" id="dummy_img">account_circle</span>
            <img src="" alt="" class="w-full h-full object-cover hidden" id="display_photo">
        </div>
        <button type="button" id="choose_photo" class="p-1 shrink-0 hover:bg-green2 hover:text-blue-text rounded ring-1 text-sm ring-slate-300 hover:ring-green2">Choose photo</button>
        <span class="text-sm max-w-[20rem] Oneline" id="display_filename"></span>
    </div>
    <input type="file"  accept="image/*" name="user__photo" id="user__photo" class="hidden" onchange="user__photo(event)">
</div>

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!