jQuery KeyPress 限制我在 TextArea 上的输入

标签 jquery html textarea

我有这个代码:

$('#typer').keypress(function(e){

            var code = (e.keyCode ? e.keyCode : e.which);

            if (code == '13') {
                $.sound.play("cr.wav",{timeout:1000}); 
            } else if (code == '8') {
                $.sound.play("del.wav",{timeout:1000});
            } else if (code == '27') {
                $.sound.play("asswipe.wav",{timeout:1000});
            } else {
                $.sound.play("key.wav",{timeout:1000});
            }
        });

现在,出于某种原因 - 我只能在此框中输入一个字符。声音播放一次,然后就不再播放了。

这在 IE 中工作正常...只是 FireFox...

插件链接:http://code.google.com/p/jqueryjs/source/browse/trunk/plugins/sound/jquery.sound.js?r=5750

有没有人用过这个插件....?

最佳答案

首先,e.which 是一个数字,而不是一个字符串,所以你应该去掉单引号:使用 code == 13 , 不是 code == '13' . switch 语句可能会更好地为您服务(尽管这只是一个偏好问题)。

其次,我认为问题不在于插件。不使用插件,这有同样的问题:

$('#typer').keypress(function(e) {
    var snd = $('<embed hidden="true" loop="false" src="key.wav" autostart="true" height="0" />');
    snd.appendTo("body");
    setTimeout(function() { snd.remove(); }, 1000);
});

FF 和 Chrome 似乎不能很好地处理 <embed>动态添加到它们的标签。您可能想要寻找一个不同的插件,一个不使用标签的插件。我不是 Flash 的粉丝,但可能有一些插件使用它,而且效果很好。

关于jQuery KeyPress 限制我在 TextArea 上的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3131845/

相关文章:

javascript - 当我用手机制作一个小的 'vmouseup' 时,jQuery Mobile 停止监听 'swipe/movement'

JQuery 每个循环将 this.text 与字符串连接起来

html - 如何禁用 Zend 表单中的表单元素?

javascript - 使用 jeditable 控制文本区域的大小

jquery - 如何在 MVC 中将图像从 View 传递到 Bootstrap Modal?

html - 图像缩放问题(尺寸缩小质量损失)

html - div 元素的水平对齐方式

javascript - AngularJS:将文本区域绑定(bind)到对象属性 - infdig 错误

html - 在固定 div 下方的文本区域中滚动到顶部

javascript - 是否可以对 javascript 变量进行更改事件?