如何在搜索栏输入中用“-”更改 space

how to change space with "-" in search bar input

当我插入文本时,我想在搜索栏中将 space 更改为“-”(从 "Samsung S7 Edge" 到 "Samsung-S7-Edge")。这是我的代码:

<!-- BEGIN: search -->
<div id="search">
   <form action="{INSTALLDIR}index.php" method="get" name="searchprod" id="prodsearch">
      <table cellpadding="0" cellspacing="0" border="0">
         <tr>
            <td><input name="ps" type="text" id="searchbox" value="Cauta produse...ex. samsung-s7-edge" onfocus="this.value=''; this.style.color='#333333';" />
               <input type="hidden" name="sv" value="1" />
            </td>
            <td><input type="submit" value="Cauta" class="searchButton" /></td>
         </tr>
      </table>
   </form>
</div>
<!-- END: search -->

I created a jsfiddle - 应该有效。

那么它在做什么:

如果有人触发按键事件并且输入的字符是 space(字符 32),我会阻止该事件,而是获取该字段的当前值并添加破折号 - .

它没有做什么:

如果有人正在粘贴文本,则没有按键事件,因此不会替换 space 字符。

您应该使用按以下顺序发生的键盘相关事件之一:

  1. onkeydown(当用户按下某个键时)
  2. onkeypress(当用户按下一个键时)
  3. onkeyup(当用户释放按键时)

这里有很多关于 javascript key events, or if you are using jquery key events

的信息