Como usar o jQuery para impedir que a chave de espaço entre em um espaço?
Eu pensei que seria uma coisa simples seqüestrar a tecla de espaço quando em uma entrada de formulário para que funcionasse como um hífen. Geralmente, o jQuery torna coisas assim realmente simples.
O código que tentei é o seguinte:
$("#StreamUrl").keydown(function (e) {
if (e.keyCode == 32) return 109;
});
Mas isso não tem efeito algum. Eu tentei um script mais simples:
$("#StreamUrl").keydown(function (e) {
//if (e.keyCode == 32) return 109;
alert(e.keyCode);
});
Esse script alerta corretamente 32 na imprensa espacial e 109 na imprensa hífen. Além disso, não tenho erros de JavaScript.
Por que nãoif (e.keyCode == 32) return 109;
trabalhos? Quando substituo essa linha porif (e.keyCode == 32) alert("space!!");
Eu recebo o alerta corretamente, então eu sei oif
está voltandotrue
corretamente.
O que da?
Editar - SoluçãoAgradecemos ao @Nick por apontar o problema de copiar e colar. Acabei com um pouco de um híbrido. Aqui está o código que eu comecei a trabalhar, que é suave e manipula Copiar / Colar.
$("#StreamUrl").keydown(function (e) {
if (e.keyCode == 32) {
$(this).val($(this).val() + "-"); // append '-' to input
return false; // return false to prevent space from being added
}
}).change(function (e) {
$(this).val(function (i, v) { return v.replace(/ /g, "-"); });
});