Javascript 在HTML5表单中的每个单词的开头添加一个hashtag()

Javascript 在HTML5表单中的每个单词的开头添加一个hashtag(),javascript,jquery,html,css,hashtag,Javascript,Jquery,Html,Css,Hashtag,我在HTML文档的一个页面上有一个表单,我想知道javascript或jquery中是否有办法在每个单词的开头添加一个hashtag。输入的单词可能不止一个 <input id="test"> <script> var a = document.getElementById('test'); a.addEventListener('keyup',addthis); function addthis() { b = a.value.replace('#','')

我在HTML文档的一个页面上有一个表单,我想知道javascript或jquery中是否有办法在每个单词的开头添加一个hashtag。输入的单词可能不止一个

<input id="test">

<script>
var a = document.getElementById('test');
a.addEventListener('keyup',addthis);

function addthis() {
    b = a.value.replace('#',''); 
    a.value = '#'+b

    if (a.value.indexOf(' '))
    {
    a.value = a.value.replace(' ','#');
    }

}
</script>

这将执行您想要的操作,并将光标移动到要引导的字段的末尾

更新:使用keydown insteead筛选出多个空格

function addHash(event) {
    if (event.keyCode === 32 && event.target.value.length) {
        event.preventDefault();

        var elem = event.target,
        val = elem.value;

        if (val.slice(-1) !== '#') {
            elem.value += ' #';
        }
    } else if (!event.target.value.length) {
        if (event.keyCode === 32) {
            event.preventDefault();
        }
        event.target.value = '#';
    }
}
我用叉子叉了一下巴奥的小提琴来测试


您可以使用jquery onchange eventlistner实现这一点

下面的脚本获取inputfield的值,并将每个单词拆分为一个空格,使其成为一个数组。然后它在单词数组中循环,如果单词的开头没有a,它会添加一个。然后用新值替换输入字段中的旧值

$('#input').on('change', function(e){
    var input_string = $(this).val();
    var words = input_string.split(" ");
    var output = "";
    console.log(words);
    $.each(words , function(i, word ){
        console.log(word);
        if(word.substr(0, 1) == "#") 
        {            
            output += word + " ";           
        }
        else
        {
           output += "#" +  word + " ";    
        }
         console.log(output);
    });

    $(this).val(output);
});

表单字段中的哪些单词?在您的文档中,您尝试了什么?在页面加载时还是在用户键入时?hashtag是一个带前缀的完整单词。是一个磅/数字符号。我希望表单中的单词在用户键入时在其前面添加。baao太棒了!有没有办法阻止它向空格中添加hashtag?@user2640633试试这个,这有点问题,但是Jonathan Lonowski~有很多与此表单无关的Jquery被修复了。我可以很容易地设置它的HTML部分,但我有一个切换开关,当切换时会更改表单中的占位符文本。我承认我对javascript和jquery知之甚少……我的老师在大部分方面都帮助我,我试着阅读他的代码,并尽力理解它goes@RubberDucky4444看这个,这个很好,很好的一个!但是如果你按空格键两次,它也会给你额外的空间。@RubberDucky4444请重新检查代码。它现在也为开始添加了内容,并且可以做您想要的一切。按住空格也不会破坏baao的:试着在他的代码中按住空格。如果要删除空格,只需删除elem.value+='';中下面的空格即可;。Makaze非常好用,只是它不会在第一个单词中添加一个字母!谢谢你的帮助!!!!我必须给输出赋值。这就是为什么第一个单词没有得到正确答案的原因。我更新了小提琴和链接。