(function($){
var functions = {
init:function(input, step, max, min, digit){
var width = input.width()-3;
var height = input.width()/4;
var _this = this;
width += 3;
input.attr("readonly", "readonly");
//设置不分样式
input.css("border", "none");
input.css("width", width-height*2-2);
input.css("height", height);
input.css("padding", "0px");
input.css("margin", "0px");
input.css("text-align", "center");
input.css("vertical-align", "middle");
input.css("line-height", height + "px");
//添加左右加减号
input.wrap("
");
input.before("-
");
input.after(" +
");
//左右调用执行
$("#" + input.attr('id') + "l").click(function(){
_this.execute(input, step, max, min, digit, true);
});
$("#" + input.attr('id') + "r").click(function(){
_this.execute(input, step, max, min, digit, false);
});
},
execute:function(input, step, max, min, digit, _do){
var val = parseFloat(this.format(input.val(), digit));
var ori = val;
if(_do) val -= step;
if(!_do) val += step;
if(valmax){
val = max;
}
input.val(this.format(val, digit));
},
format:function(val, digit){
if(isNaN(val)){
val = 0;
}
return parseFloat(val).toFixed(digit);
}
};
$(function(){
//使用控件必须有以下属性或者引用alignment类
var inputs = $("input[user_data], input[data_digit], input[data_step], input[data_min], input[data_max], input.alignment");
inputs.each(function(){
//预设值数据选择
var data = {
default_data : {"step" : 1, "min" : 0, "max" : 99, "digit" : 1},
aaa : {"step" : 0.5, "min" : 5, "max" : 20, "digit" : 1},
}
var user_data = eval("data." + $(this).attr("user_data"));
if(user_data == null){
user_data = data.default_data;
}
var digit = $(this).attr("data_digit");
if(digit != null&&!isNaN(parseFloat(digit))){
digit = parseFloat(digit).toFixed(0);
user_data.digit = parseFloat(digit);
}
var step = $(this).attr("data_step");
if(step != null &&!isNaN(parseFloat(step))){
user_data.step = parseFloat(step);
}
var min = $(this).attr("data_min");
if(min != null &&!isNaN(parseFloat(min))){
user_data.min = parseFloat(min);
}
var max = $(this).attr("data_max");
if(max != null &&!isNaN(parseFloat(max))){
user_data.max = parseFloat(max);
}
//自动装载
functions.init($(this), user_data.step, user_data.max, user_data.min, user_data.digit);
var data_edit = $(this).attr("data_edit");
if(data_edit){
$(this).attr("readonly",null);
}
});
})
})(jQuery);