The crash happened in Bradford Road in Riddlesden at about 5pm on Thursday, May 2.
A black Vauxhall Astra travelling towards Keighley hit the pedestrian close to the Co-op store.
The 25-year-old man from Bingley was taken to hospital with serious injuries.
His condition is described as critical but stable.
The Astra driver, a 37-year-old man from Keighley, stopped at the scene.
He has spoken to the police.
Police are now appealing for witnesses to the crash or the events before it to contact the Western Area Roads Policing Unit on 101, quoting log 1277 of 2 May.