3

我不确定这个问题有多简单或多复杂,因为我只是在学习 javascript,但它就在这里。

假设我有一个输入字段:

<input type="text" value=""/>

我正在尝试编写一个 javascript 函数,该函数在每次输入空格时检查输入值,然后在用户键入时实时编辑值。

例如,假设我开始输入:你好,你好吗

在'u'后面点击空格后,我想用'you'替换'u'。

所以,如果有人这么好,我从哪里开始呢?这可能具有讽刺意味,因为我看到我正在输入的文本立即被更新到这个文本区域的底部。但是,我试图让它在现场本身更新。

谢谢!!!

4

2 回答 2

1

您不一定需要 jQuery 来执行此操作,但使用 vanilla JS 需要更多的工作。首先,为您的输入提供一个 ID:

<input id="ValueField" type="text" value="" />

然后添加一个事件监听器:

var field = document.getElementById('ValueField');

field.addEventListener('keyup',function(e){
    if(e.keyCode==32){
        // do your stuff
    }
});

检测变化的方法有一百万种,但首先想到的是一个函数:

var field = document.getElementById('ValueField');

field.addEventListener('keyup',function(e){
    if(e.keyCode==32){
        field.value = replaceValues(field.value);
    }
});

function replaceValues(fieldval){
    var baditems = [' u ',' i '],
        newitems = [' you ',' I '],
        length = baditems.length;

    for(var i = length; i--;){
        fieldval = fieldval.replace(baditems[i],newitems[i]);
    }

    return fieldval;
}

只需将坏项目和新项目的数组构建成与它们的订单匹配的长度相同,你应该会很好。通过这种方式,您可以替换任意数量的项目,并且运行速度应该很快。

编辑

如果我让函数返回一些东西可能会有所帮助!这是一个展示示例的 jsFiddle 。u另外,我必须在and周围添加空格,i否则它只会匹配字母的任何实例。

于 2013-05-16T16:04:40.487 回答
0

如果您使用的是 jquery,请查看:https ://stackoverflow.com/a/2249215/146602

检测是否正在使用空格字符的好方法。

于 2013-05-16T15:51:47.827 回答