I tried this out on the WP Sandbox running Civicrm 4.7.20 but it is also not validating in older version. I set up a price-set with 3 price levels and used it to pay for an event in the Sandbox system. If I input say 'a' for the number of seats (x a price) I get an error msg saying the input s/b numeric. if I input 2 numeric values I get the correct total, but if I input 'a' and '1' the valid price is accepted but the invalid 'a' isn't flagged.
PS I will volunteer to fix this, as I do have a GitHub account and all