替换键盘上的文本而不显示默认值

时间:2018-08-13 15:13:49

标签: javascript jquery

我正在开发虚拟的土耳其字母键盘。我正在尝试将“ ed”替换为“”,但效果很好,但是在替换之前显示“ ed”。我该如何摆脱呢?请注意,如果您的计算机没有Unicode 6或更高版本,它将不会向您显示特殊字符(例如X)。

$('#text').keyup(function(e) {
  $('#text').css('direction', 'rtl');
  $('#text').css('unicode-bidi', 'bidi-override');
  text2 = $(this).val();
  text2 = text2.replace(/(ed)/g, "");
  $("#text").val(text2);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="text"></textarea>

2 个答案:

答案 0 :(得分:0)

改为使用input事件。

$('#text').on('input', function(e) {
  $('#text').css('direction', 'rtl');
  $('#text').css('unicode-bidi', 'bidi-override');
  text2 = $(this).val();
  text2 = text2.replace(/(ed)/g, "");
  $("#text").val(text2);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="text"></textarea>

答案 1 :(得分:-1)

这是您可以建立的基础。

请注意,我正在使用按键,当在转换中找到字符时,我将其添加

我想知道如果您想允许输入其他字符而不是可以转换的字符,将如何允许输入例如eX

var text1 = [],
  text2 = [],
  conversion = {
    "ed": ""
  }
$(document).keypress(function(e) {
  text1.push(String.fromCharCode(e.which))
  var tr = conversion[text1.join("")];
  if (tr) {
    text2.push(tr);
    console.log(text1.join(""), tr)
    $("#text").val(text2.join(""));
    text1 = [];
  }
});
#text {
  direction: rtl;
  unicode-bidi: bidi-override;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
It is read only. Just start typing<br/>

<textarea id="text" readonly></textarea>