0

我编写了一个简单的 javascript 代码来从文本框中删除空格。这在 Firefox 中运行良好。它甚至可以在 IE 和 Chrome 中运行,但是有一个小问题。如果我尝试使用键盘上的左箭头键将光标移动到文本框的左侧,则在文本框中给出值后,它只会从右侧穿过第一个字符然后停止。这是我的代码:

<script>
function fixme(element)
{
    if(element.value != '')
    {
        var val = element.value;
        var pattern = new RegExp('[ ]+', 'g');
        val = val.replace(pattern, '');
        element.value = val;
    }
}
</script>

<input type="text" onkeydown="fixme(this)" onblur="fixme(this)"/>

任何的想法?

4

1 回答 1

0
function fixme(element) {
    if(element.value != '') {
        var val = element.value;
        val = val.replace(/\s/g, '');
        if (val != element.value) element.value = val;
    }
}

<input type="text" onkeyup="fixme(this)" onblur="fixme(this)" />

修改了您的函数以仅在固定值与输入的值不同时更改文本输入的 value 属性,试一试。

小提琴

但是,如果您的用户不应该在文本输入中键入空格,您可以简单地阻止他们这样做:

function nospace(e) {
    e = e || window.event;
    return e.keyCode !== 32;
}

<input type="text" onkeydown="return nospace(event)" onkeyup="fixme(this)" onblur="fixme(this)" />

保留您以前的功能,以防用户将文本粘贴/拖动到文本输入。

小提琴

于 2012-08-17T11:56:34.203 回答