我有一个包含多个输入字段的巨大表单。这是一个平衡和利润&损失表,因此输入文本字段必须格式化为“钱”。我发现了一些很好的jQuery插件来进行格式化:accounting JS,但是现在我必须在所有字段上手动调用它,这不是我认为最好的方法...
如何在keydown上的所有输入文本字段上调用accounting.formatMoney()函数? 因此,如果FORM或BODY上有KeyDown或KeyUp事件,脚本将找到所有输入字段并执行脚本。
这是我想在每个INPUT文本字段上调用的格式和Javascript函数:
var options = {
symbol : "",
thousand: " ",
precision : 0,
format: "%v%s"
};
var tmp = parseInt(document.getElementById('input_id').value, 10);
document.getElementById('input_id').value = accounting.formatMoney(tmp, options);
表单通过AJAX发送回BODY,所以我认为最好的方法是以这种方式调用函数:
$(document).ready(function(){
$('body').on('keyup', 'input', function(e){
// collect all input fields and execute the function
});
});
非常感谢您的帮助!
答案 0 :(得分:2)
你可以做
$(document).ready(function(){
$('body').on('keyup', 'input', function(){
$(this).val(accounting.formatMoney($(this).val(), options));
});
});
但是这假设您的用户希望在输入时修改输入。
如果您想在用户离开字段时修改输入或输入“enter”,请执行以下操作:
$(document).ready(function(){
$('body').on('blur change', 'input', function(){
$(this).val(accounting.formatMoney($(this).val(), options));
});
});
请注意,在真实世界的应用程序中,我会在输入中设置一个类,以使选择器更具选择性('input.money'
而不是'input'
)。
编辑:
如果要将其应用于id
为bstable
的表格中的输入,请执行
$(document).ready(function(){
$('#bstable').on('blur change', 'input', function(){
$(this).val(accounting.formatMoney($(this).val(), options));
});
});
如果bstable
表是通过ajax获得的,而不是立即在这里,你可以这样做
$(document).ready(function(){
$(document.body).on('blur change', '#bstable input', function(){
$(this).val(accounting.formatMoney($(this).val(), options));
});
});
答案 1 :(得分:0)
$('body').on('keyup', 'input', function(){
$("body").find("input").each(function(index, element){
$(element).val(accounting.formatMoney($(element).val(), options));
});
});