0

我在使用 jQuery Mobile / PHP 开发的 Web 应用程序中遇到了这个问题

  • 该应用程序旨在通过平板电脑浏览器在 iPad 等平板电脑上使用

  • 在我的应用程序中,我有一个在 jQuery mobile 中构建的表单,其中包含一些文本和一个文本区域字段

  • 在文本区域字段中,我还需要插入通常在台式机上使用 Alt+ASCII 代码编写的特殊字符(例如 Alt+157、Alt+225、Alt+0177)

  • 在 iPad 上,我没有找到在虚拟平板电脑上单击 Alt+ASCII 代码的方法,所以我想在我的表单中添加一些按钮,一个用于我需要的每个特殊字符,当单击时传递到文本区域 Alt +ASCII 码组合。可能吗?如果是,怎么可能?

  • 提交表单时,字段的内容将存储到 Mysql 数据库中……但这不是问题

非常感谢,马特

4

1 回答 1

0

我曾经有过类似的问题。我认为您不能依赖模拟keypress(我认为您正在尝试这样做)。keypress如果它不受信任并且指定模拟的密钥在某些浏览器上可能不起作用,则不会发生。但是,这是如何实现的。

$("button").click( function() {
  var e = jQuery.Event("keydown");
  e.which = 50; 
  $("textarea").trigger(e);
});

但是,这在 Chrome 上不起作用。所以我建议你尝试通过代码注入价值。针对当前的情况,我为您设置了一个小提琴。这是标记

 <textarea></textarea>
 <button class="special" data-char="~">Insert tilde</button>

和 JS

$(".special").click(function () {
  var char = $(this).data("char");
  $("textarea").val(function () {
      return this.value + char;
  });

});

和演示 http://jsfiddle.net/hungerpain/8qs2G/

于 2013-06-13T08:39:43.723 回答