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ção

Agradecemos 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, "-"); }); 
        });

questionAnswers(2)

yourAnswerToTheQuestion