The 22-year-old, who represented England on 31 occasions at junior level, has signed a two-year contract at The Valley.
"We are really happy to bring David to the club," Addicks manager Chris Powell told the club's official website. "He's someone we've been monitoring for quite some time and is a hugely talented young keeper who is a good age and boasts all the right attributes.
"He's come through the ranks at Tottenham and also has played youth football internationally as well as playing for quite a few clubs on loan, including in the Championship.
"This represents a new chapter for him and it's great that he feels it's the right time to make this move and further develop here at The Valley."
Button's only first-team appearance for Spurs came during a 5-1 victory over Doncaster Rovers in the League Cup in 2009.