Ok, my initial theory was only slightly wrong. I thought it was a JS validation issue, when it was really an issue with PHP validation. Yeesh! Follow instructions below to fix the issue.
In your wp-stripe plugin folder open the stripe-functions.php file in the ‘includes’ folder. Go down to lines 118-121 or so, you’ll see something like this:
$public = $_POST['wp_stripe_public'];
$name = $_POST['wp_stripe_name'];
$email = $_POST['wp_stripe_email'];
$amount = str_replace('$', '', $_POST['wp_stripe_amount']) * 100;
$card = $_POST['stripeToken'];
Change that block to:
$public = $_POST['wp_stripe_public'];
$name = $_POST['wp_stripe_name'];
$email = $_POST['wp_stripe_email'];
$amount = str_replace(',', '', $_POST['wp_stripe_amount']);
$amount = str_replace('$', '', $amount) * 100;
$card = $_POST['stripeToken'];
Basically, all we’re doing is stripping out commas from the string before we strip out the dollar signs and convert the dollar amount to cents (that’s how Stripe likes it’s amounts).