This is sort of the reason why I like to use cash whenever possible.
If I have money on my debit card, I can easily forget how much exactly I have on there, and I won't know unless I go into a bank or a cash-machine or check online, which isn't always easy when you're out and about.
So, instead of using the debit card to pay at a till at a shop, I'll normally go to a cash machine, see how much money I have, withdraw what I need and spend from that.
That way I'm more aware of the fact that I've just spent £10. Whereas if I go and use the debit card, since I never had any physical money in my pocket beforehand, I don't quite realise the lack of money I have.
It's a bit silly, but that's me. I'd prefer to know definitely that I've lost money, otherwise I get carried away.
Which is what I do when I end up buying online.
Luckily my debit card doesn't allow for overdrawing. Which is a good thing, because I don't fill my bank up regularly, since I don't have a job.