Know this was asked a little while ago, but started investigating and found a "solution". Apparently when Webform has a form component with type "Email" it sets the input type to "email". On browsers IE8+ and modern browsers (Chrome, FF) there is an automatic, browser-side verification on these fields. It's nothing to do with the script. It seems to be an html5 "feature", see http://stackoverflow.com/questions/9399528/disable-form-validation-in-browser.
Two options:
Don't use the "Email" type in Webforms. This kind of breaks the ability to use form values as "To" or "From" emails in the Webform Emails feature, so it's not great.
Add the novalidate rule to the <form> generated by Webform. I do so via a custom hook:
function mymodule_form_alter(&$form,&$form_state,$form_id) {
if(strstr($form_id,'webform') !== FALSE) {
// prevent html5 validation, i.e. on input type="email" fields
form['#attributes']['novalidate'] = '1';
}
}
This is just if you want to remove it. Now you can use Webform clientside validation module to set custom messages. Or you can style like here: http://stackoverflow.com/questions/5713405/how-do-you-style-the-html5-form-validation-messages