Nos meus formulários, eu gostaria de usar os novos tipos de formulário HTML5, por exemplo <input type="url" />( mais informações sobre os tipos aqui ).
O problema é que o Chrome quer ser super útil e validar esses elementos para mim, exceto que é uma porcaria. Se falhar na validação interna, não há outra mensagem ou indicação além do elemento que está recebendo o foco. Eu preenchei elementos de URL com "http://", e assim minha própria validação personalizada trata esses valores como cadeias de caracteres vazias, mas o Chrome rejeita isso. Se eu pudesse mudar suas regras de validação, isso também funcionaria.
Sei que poderia voltar a usar, type="text"mas quero as boas melhorias usando esses novos tipos de ofertas (por exemplo: ele muda automaticamente para um layout de teclado personalizado em dispositivos móveis):

Então, existe uma maneira de desativar ou personalizar a validação automática?
$('[inputmode]').each(function () { this.attr({type: this.attr('inputmode'), novalidate: true}) });
inputmodeseria. Fazendo as coisas do seu jeito, você ainda não pode (por exemplo) ler valores não numéricos que o usuário digita em uma caixa de entrada do tipo number. Por exemplo, tente digitar algo não numérico na caixa de texto deste violino e clicar no botão.
<input type='number'>ocorre porque não aceita valores não numéricos?


inputmodeatributo que - se eu estiver entendendo o que li corretamente - pode ser usado para especificar que tipo de teclado deve ser oferecido ao usuário quando ele interagir com o campo, sem também implicar regras de validação. Em algum momento no futuro, usar oinputmodeatributo em vez dotypeatributo provavelmente será a solução correta para esse problema - mas ainda não.