我有2个文本区域,我想应用蒙版。
所以在这两种情况下,允许的字符都是0-9和逗号和空格。
我很难为此做出掩饰。我可以用蒙面插件做一些这样的事吗?
http://digitalbush.com/projects/masked-input-plugin/
我跟着this想出了一个自定义插件来允许特定键,但是遇到了逗号和ctrl + V的问题。逗号和<两者都有相同的密钥代码,所以现在采用掩蔽路径。
//Multiple zip codes separated by comma and space
jQuery.fn.multipleZipCodesSeparatedByCommaAndSpaceOnly = function () {
return this.each(function () {
$(this).keydown(function (e) {
var key = e.which || e.keyCode;
//alert(String.fromCharCode(key));
if (!e.altKey && e.ctrlKey && //&& !e.shiftKey &&
// numbers
(key >= 48 && key <= 57) ||
// Numeric keypad
(key >= 96 && key <= 105) ||
// comma, space
key == 188 || key == 32 ||
// Backspace and Tab
key == 8 || key == 9 ||
// Home and End
key == 35 || key == 36 ||
// left and right arrows
key == 37 || key == 39 ||
// Del and Ins
key == 46 || key == 45) {
return true;
}
return false;
});
});
};
答案 0 :(得分:1)
这是我用于屏蔽仅数字输入的代码
$('.numeric').keyup(function() {
$(this).val($(this).val().replace(/[^0-9.]/g,''))
});
因此,更改正则表达式应该可以帮助您实现您想要的目标。 我不是正则表达式专家,但有很多在线资源!
通过向要屏蔽的输入字段添加一个“数字”类来使用它 - 显然可以将类名更改为更合适的名称!
答案 1 :(得分:0)
这是插件......
//Multiple zip codes separated by comma and space
jQuery.fn.multipleZipCodesSeparatedByCommaAndSpaceOnly = function (method) {
var methods = {
init: function () {
//keyup
$(this).bind('input propertychange', function (e) {
methods.ZipCodeHandle(e, $(this));
});
},
ZipCodeHandle: function (e, $object) {
$object.val($object.val().replace(/[^\d\, ]/g, ''));
}
};
return this.each(function () {
// Method calling logic
if (methods[method])
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
else if (typeof method === 'object' || !method)
return methods.init.apply(this, arguments);
else
$.error('Method ' + method + ' does not exist');
});
};