About 54 people were injured, 33 of whom were “still receiving medical treatment”, Jakarta police spokesman Budi Hermanto said.
National police chief Listyo Sigit Prabowo said the suspect was a student, who was injured and undergoing surgery.
“Regarding the motive, we are currently investigating various kinds of information,” Listyo said at a news conference.
Lodewijk Freidrich Paulus, deputy co-ordinating minister of politics and security, urged the public not to rush to judgment.
“Don’t jump to the conclusion that this is a terrorist act,” Lodewijk was quoted as saying by the Antara state news agency as he announced a probe was under way.
He said the explosions took place at the back of the mosque on the school campus and near its door.
Investigators, including bomb squad technicians, were processing the scene on the school campus and an AFP journalist saw plastic evidence bags on prayer rugs.
Kinza Ghaisan Rayyan, a 17-year-old student, told AFP there was confusion over what happened.
“At first we thought it came from some electronic equipment, maybe the sound system... but it turned out the explosion came from under the prayer mat,” he said at a Jakarta hospital.
Jakarta police chief Asep Edi Suheri said authorities had set up posts in two hospitals to assist relatives in finding their loved ones.
Ferdi Ibrahim, the brother of a student, said he “panicked right away” on learning about the blasts.
“Finally, I got a call from my sibling’s teacher, they were already in the hospital’s emergency room,” the 30-year-old said.
– Agence France-Presse