it cannot prevent a malicious person form filling in the form and sending the spam though. not all spam is sent by the same method. It is not really possible to prevent a person from filling in the form manually with spam content.
The only thing you can do is make it time consuming so its not worthwhile to complete…however then your real users will be discouraged too.
if someone can up with a solution to eliminate all spam they will be the next bill gates