Não consegui encontrar um tipo que funcionasse melhor para mim em todas as situações: eu precisava usar como padrão a entrada numérica (entrada de "7.5", por exemplo), mas também em alguns momentos permitir o texto ("passar", por exemplo). Os usuários queriam um teclado numérico (entrada de 7,5, por exemplo), mas era necessária entrada ocasional de texto ("aprovação", por exemplo).
Em vez disso, o que fiz foi adicionar uma caixa de seleção ao formulário e permitir que o usuário alternasse minha entrada (id = "inputSresult") entre type = "number" e type = "text".
<input type="number" id="result"... >
<label><input id="cbAllowTextResults" type="checkbox" ...>Allow entry of text results.</label>
Em seguida, liguei um manipulador de cliques na caixa de seleção que alterna o tipo entre texto e número, com base no fato de a caixa de seleção acima estar marcada:
$(document).ready(function () {
var cb = document.getElementById('cbAllowTextResults');
cb.onclick = function (event) {
if ($("#cbAllowTextResults").is(":checked"))
$("#result").attr("type", "text");
else
$("#result").attr("type", "number");
}
});
Isso funcionou bem para nós.