Speaking at a campaign rally in Miami for Democratic nominee Hillary Clinton, the president said Mr Trump's comments undermined American democracy.
Mr Trump refused in a televised debate to say he would accept the outcome of the election on 8 November.
He later said he would accept a "clear" result but left a challenge open.
Speaking in Ohio on Thursday, Mr Trump said, with a grin: "I would like to promise and pledge to all of my voters and supporters and to all of the people of the United States, that I will totally accept the results of this great and historic presidential election - if I win."
In the same speech, he said he would accept a clear election result but reserved the right to file a legal challenge in the case of a questionable one.
Hours later, the president said that sowing the seeds of doubt in people's minds about the legitimacy of US elections provided a boost to the country's enemies.
"You're doing the work of our adversaries for them, because our democracy depends on people knowing that their vote matters," said Mr Obama.
Mr Trump has been heavily criticised by many in his own party by suggesting he might not accept the election result.
For days, he has claimed the election is rigged against him, due to media bias and voter fraud.
During Wednesday night's debate with Mrs Clinton, when moderator Chris Wallace asked Mr Trump if he would accept losing to her, the Republican nominee said he would "keep you in suspense".
Mr Trump's campaign manager, Kellyanne Conway, later insisted that the candidate had meant he would not concede until the "results are actually known".
Republican Senator John McCain, who lost to Mr Obama eight years ago, said: "A concession isn't just an exercise in graciousness. It is an act of respect for the will of the American people, a respect that is every American leader's first responsibility."
First Lady Michelle Obama also joined the attack on Thursday, saying "you do not keep American democracy in suspense".