在表单输入中启用特殊字符

时间:2016-01-31 01:17:08

标签: javascript forms input character entities

我正在寻找一种(<% current_user.chosen_award.times do |index| %> <li class="list-group-item"> <a href="/personal_entry"> <%= "Week #{index + 1}" %> </a> </li> <% end %> )方法,让我的用户可以将光标放在我的多个文本输入字段中的任何一个中,并输入preferrably HTML or Javascript并让它显示一个macron-实体("CTRL-SHIFT-A,")。我已经找到了一种Javascript方式来识别按下"Ā", also coded as &#256;的时间,但我只是不知道如何显示“Ā”。

的Javascript

"CTRL-SHIFT-A"

HTML

    <script>

       window.addEventListener("keydown", keysPressed, false);
       window.addEventListener("keyup", keysReleased, false);

       var keys = [];

       function keysPressed(e) {
             keys[e.keyCode] = true;
             if (keys[17] && keys[16] && keys[65]) {

           /*The solution should probably go here.*/

             e.preventDefault(); 
          }
        }

    function keysReleased(e) {
        keys[e.keyCode] = false;
    };

    </script>

Charset是“windows-1252”,它编码为“带BOM的UTF-8”。

1 个答案:

答案 0 :(得分:1)

一旦找到特殊字符的代码,就可以使用String.fromCharCode()。我查找了你的角色和found details on Wikipedia,在那里我使用了Unicode值,即256.所以这里有一个例子:

alert(String.fromCharCode(256))

要继续“如何将字符串放入具有焦点的输入控件”,您可以按如下方式修改函数:

function keysPressed(e) {
         keys[e.keyCode] = true;
         if (keys[17] && keys[16] && keys[65]) {
           // e.target.value is the read/write property of the
           // input field that received the keyboard sequence
           e.target.value=String.fromCharCode(256);
           e.preventDefault(); 
         }
}

请参阅:https://jsfiddle.net/kn3ko9oy/