The visitors will be kicking themselves not to have emerged with a share of the points in an even contest at Yate Town.
Chances were at a premium early on, but Didcot keeper James Foster had to be at full stretch to tip over a Mike Bryant header.
At the other end, a surging run and shot by Sam Elkins was saved low down by Martin Horsell on 34 minutes.
Didcot striker John Mills spurned a good chance just after the interval.
Needing one more goal to become the first Didcot player for five years to hit 20 in a season, Mills found himself with only Horsell to beat, but lobbed the ball over the bar.
Shortly afterwards, the hosts grabbed the game’s only goal. A cross by Jordan Ricketts was forced home from close range by Haldane.
Mills then saw his goal-bound shot blocked by Joe Chandler, while Elkins missed from close range.
Didcot: Foster, Elkins, S Parish, Baines, Carnell, Heapy, Dutton-Black (Thomas 74), Williams (Parish 88), Longford (McDonald 80), Mills, Whitehead. Sub not used: McLoughlin.