当有人在表单输入框中键入内容时,我使用以下代码来打印文本:
<script>
var inputBox = document.getElementById('company');
inputBox.onkeyup = function(){
document.getElementById('printchatbox').innerHTML = inputBox.value;
}
</script>这很好用,但是我也想用下划线替换用户键入的任何空格。为了做到这一点,我尝试了下面的方法来做一个简单的搅拌替换,但这似乎破坏了整个事情。
<script>
var inputBox = document.getElementById('company');
inputBox.onkeyup = function(){
var res = inputBox.replace(" ", "_");
document.getElementById('printchatbox').innerHTML = res.value;
}
</script>你知道我哪里做错了吗?
发布于 2017-05-13 14:58:50
您需要的是输入框中的值,而不是您正在使用的变量。下面的代码应该可以工作:
<script>
var inputBox = document.getElementById('company');
inputBox.onkeyup = function(){
var res = inputBox.value.replace(" ","_");
document.getElementById('printchatbox').innerHTML = res;
}
</script>EDIT:正如trincot指出的那样,只会替换第一次出现的内容,使用正则表达式会有所帮助,以下是另一种选择:
var res = inputBox.value.replace(/\s/g, "_");发布于 2017-05-13 15:00:44
一些问题:
inputBox在value.replace属性中有输入值,因此您应该在该属性上应用propertyreplace返回字符串的replace,这样它就不会有value,除非您提供具有g修饰符的正则表达式,否则将只替换一个匹配项。
所以你可以这样做:
var res = inputBox.value.replace(/ /g, "_");
document.getElementById('printchatbox').innerHTML = res;https://stackoverflow.com/questions/43950182
复制相似问题