How to check whether an array contains an element
本问题已经有最佳答案,请猛点这里访问。
我想限制可以按的键。
1 2 3 4 5 6 7 8 9 10 11 12 | $('.txtComments').keydown(function (event) { var keys = new Array(); keys[0] ="8"; keys[1] ="46"; keys[2] ="37" keys[3] ="39" if(!(....)) //Check whether the keyCode is either of 8, 46, 37, or 39. { event.preventDefault(); } }); |
谢谢你的帮助
这里最简单(也是最快)的方法是使用对象作为地图:
1 2 3 4 5 6 | var keys = {}; keys[8] = true; ... if (!keys[event.which]) { ... |
请注意,我建议使用event.which而不是keycode以获得更好的兼容性。
实现这一点的方法有很多种:
只是硬编码:
1 2 3 | var keyCode = event.which; if (keyCode != 8 && keyCode != 46 ...) |
或检查阵列:
1 2 | var keys = [8, 46, ...]; if (keys.indexOf(keyCode) < 0) |
或jquery等效工具:
1 | if ($.inArray(keyCode, keys) < 0) |
或检查对象:
1 2 | var keys = { 8: 1, 46: 1, ... } if (! (keyCode in keys) ) // or if (!keys[keyCode]) |
或开关:
1 2 3 4 5 6 7 | switch (keyCode) { case 8: case 46: ... // do nothing break; default: event.preventDefault(); } |
jquery提供了实用方法
你可以使用:
1 2 3 4 5 6 | var keys = []; keys[8] = keys[4] = keys[37] = keys[39] = true; if(keys[keyval]){ } |
把你的
1 2 3 4 5 6 7 8 9 10 | <script type="text/javascript"> // Benoit Asselin - http://www.ab-d.fr Array.prototype.in_array = function(p_val) { for(var i = 0, l = this.length; i < l; i++) { if(this[i] == p_val) { return true; } } return false; } |