You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
4.7 KiB
JavaScript

/// <reference path="jquery.min.js" />
Sys.CultureInfo.CurrentCulture.numberFormat.NumberGroupSeparator = "";
jQuery.fn.extend({
MaskedTextBox: function () {
$(this).attr("autocomplete", "off").css("ime-mode","disabled");
$(this).keydown(function () {
var k = window.event.keyCode;
var val = $(this).val();
//大小键盘小数点
if (k == 110 || k == 190) {
var a = val.match(/\./ig);
if (a != null && a.length > 0) {
window.event.returnValue = false;
return false;
}
}
if (k == 189 || k == 109) {
var min = $(this).attr("min");
var minval = parseFloat(min);
if (minval == null) {
window.event.returnValue = false;
return false;
}
if (minval >= 0) {
window.event.returnValue = false;
return false;
}
var b = val.match(/\-/ig);
if (b != null && b.length > 0) {
window.event.returnValue = false;
return false;
}
}
if (window.event.ctrlKey == true && (k == 86 || k == 118 || k == 67 || k == 99)) {
return;
}
if ((k == 46) || (k == 189) || (k == 109) || (k == 8) || (k == 190) || (k == 110) || (k >= 48 && k <= 57) || (k >= 96 && k <= 105) || (k >= 37 && k <= 40))
{
}
else if (k == 13) {
window.event.keyCode = 9;
}
else {
window.event.returnValue = false;
return false;
}
});
$(this).keyup(function () {
var val = $(this).val();
if (val == '') return;
var min = $(this).attr("min");
if (isNaN(min) == true) return;
var max = $(this).attr("max");
if (isNaN(max) == true) return;
var precision = $(this).attr("precision");
if (isNaN(precision) == true) precision = 0;
var a = val.match(/\./ig);
if (a != null && a.length > 1) { $(this).val(""); return; }
var b = val.match(/\-/ig);
if (b != null && b.length > 1) { $(this).val(""); return; }
if (b != null && b.length == 1 && val.substring(0, 1) != '-') $(this).val(val.replace('-', ''));
var maxval = parseFloat(max);
var minval = parseFloat(min);
var selval = parseFloat(val);
if (minval > maxval) return;
if (isNaN(selval)) { $(this).val(minval); alert("必须是数字"); $(this)[0].focus(); window.event.returnValue = false; return; }
if (selval > maxval) { $(this).val(maxval); alert("不能大于" + max); $(this)[0].focus(); window.event.returnValue = false; return; }
if (selval < minval) { $(this).val(minval); alert("不能小于" + min); $(this)[0].focus(); window.event.returnValue = false; return; }
//if (precision != "") $(this).val(parseFloat(parseFloat(val).localeFormat("n" + precision)).localeFormat("d"));
});
$(this).change(function () {
var val = $(this).val();
if (val == '') return;
var min = $(this).attr("min");
if (isNaN(min) == true) return;
var max = $(this).attr("max");
if (isNaN(max) == true) return;
var precision = $(this).attr("precision");
if (isNaN(precision) == true) precision = 0;
var a = val.match(/\./ig);
if (a != null && a.length > 1) { $(this).val(""); return; }
var b = val.match(/\-/ig);
if (b != null && b.length > 1) { $(this).val(""); return; }
if (b != null && b.length == 1 && val.substring(0, 1) != '-') $(this).val(val.replace('-', ''));
var maxval = parseFloat(max);
var minval = parseFloat(min);
var selval = parseFloat(val);
if (minval > maxval) return;
if (isNaN(selval)) { $(this).val(minval); alert("必须是数字"); $(this)[0].focus(); window.event.returnValue = false; return; }
if (selval > maxval) { $(this).val(maxval); alert("不能大于" + max); $(this)[0].focus(); window.event.returnValue = false; return; }
if (selval < minval) { $(this).val(minval); alert("不能小于" + min); $(this)[0].focus(); window.event.returnValue = false; return; }
if (precision != "") $(this).val(parseFloat(parseFloat(val).localeFormat("n" + precision)).localeFormat("d"));
});
}
});