我正在尝试人们可以在输入字段中填写像素或ems,但我希望它更好一点,支票/自动填充。
这是我现在拥有的jQuery脚本:
$options.keydown(function (e) {
// Allow: backspace, delete, tab, escape, enter, dot, e, m , p, x
if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190, 69, 77, 80, 88]) !== -1 ||
// Allow: Ctrl+A, Command+A
(e.keyCode === 65 && (e.ctrlKey === true || e.metaKey === true)) ||
(e.keyCode >= 35 && e.keyCode <= 40)) {
return;
}
if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
e.preventDefault();
}
});
所以人们只能在px或em中输入数字,点或类型。但是当一个人只输入&#34; 20&#34 ;?时,如何自动填充输入?将输入自动填充到&#34; 20px&#34;将是很好的。而当这个人只是在输入&#34; eeee&#34;在该领域,它将被清除。所以只有格式&#34; px&#34;或&#34; em&#34;被允许。当某些人没有输入一个单元时,输入会自动填充&#34; px&#34;背后。
这可能吗?
答案 0 :(得分:0)
你能不能简单地使用type =&#34; number&#34;在输入字段?并将单位值附加到JS中,或者替换为第二个表单字段(选择,带选项)。
答案 1 :(得分:0)
以下是现在为我工作的脚本:
jQuery('.units input').on('change', function() {
e = jQuery(this).val();
units(e);
jQuery(this).val(e);
});
var units = function( value) {
if ( jQuery.isNumeric(value) ) {
e = value + 'px';
return e;
} else if ( value.indexOf('px') > -1 || value.indexOf('em') > -1 ) {
var Pixels = e.replace("px", "");
var Ems = e.replace("em", "");
if ( jQuery.isNumeric(Pixels) || jQuery.isNumeric(Ems) ) {
e = value;
return e;
} else {
e = "0px";
return e;
}
} else {
e = "0px";
return e;
}
};