The problem is in escaping quotes and getting the double quotes around the final value, like we expect in HTML attributes. Here's an example of the right way to do this (thanks to John Brad):
onchange='"someFunc(this.form, \'abc\')"'
Notice here that there are single quotes surrounding the double quotes, and then the single quotes inline in the Javascript are escaped. This produces this result:
onchange="someFunc(this.form, 'abc')"