2014-03-02 46 views
0

我已经有一个表单上的字段,当它填充它调用ajax调用。AJAX调用JQuery加载函数

ajax调用填写表单的其他领域罚款和一切。

但我已经有了他们领域的一些功能后,我点击这些领域他们唯一的工作..

$('#lista').on('keypress keydown keyup change',function(){ 
    var qtd_itens = $('#lista tbody').children('tr').length + 1; 
    somatotal = 0; 
    for ($i = 0; $i < qtd_itens; $i++) { 
     acho = new String($(':input[name="qtd' + $i + '"]').val()), 
    alto = new String($(':input[name="preco' + $i + '"]').val()); 
    acho = acho.replace(',', '.'); 
    alto = alto.replace('.', ''); 
    alto = alto.replace(',', '.'); 
     v = 0; 

     if (!isNaN(acho) && !isNaN(alto)){ 
      v = parseFloat(acho*alto,2); 
     } 
     $(':input[name="total' + $i + '"]').val(formatter.format(v)); 
    somatotal += v; 
    $(':input[name="valortotal"]').val(formatter.format(somatotal)); 
    } 
}); 

我知道这种情况正在发生,因为我使用的是在('按键的keydown KEYUP改变'事件,但是,有没有办法,当ajax调用被称为这已经做了这项工作,没有我点击字段?

+0

目前还不清楚你问的是什么问题。你是用ajax加载内容,然后发现事件处理程序不在新内容上工作吗?或者是其他东西? – jfriend00

+0

他们实际上正在工作..但我需要点击他们的字段来格式化数字,因为我正在使用点击事件。我希望当我用ajax加载内容时,他们已经在不点击它的情况下完成了这项工作。 – ledesma

+0

使用onclick事件做什么?您的问题中没有与onclick事件有关的任何代码。 – jfriend00

回答

0

更改事件不会触发当您以编程方式更改字段如果您想要代码在你用ajax调用编程填充字段后运行,那么你将不得不把你的代码放到一个函数中,然后在thos上调用它在您从ajax调用中将新数据添加到它们后的e字段。

例如,您可以更改您的代码如下:

$('#lista').on('keypress keydown keyup change', itemsModified); 

function itemsModified(){ 
    var qtd_itens = $('#lista tbody').children('tr').length + 1; 
    somatotal = 0; 
    for ($i = 0; $i < qtd_itens; $i++) { 
     acho = new String($(':input[name="qtd' + $i + '"]').val()), 
     alto = new String($(':input[name="preco' + $i + '"]').val()); 
     acho = acho.replace(',', '.'); 
     alto = alto.replace('.', ''); 
     alto = alto.replace(',', '.'); 
     v = 0; 

     if (!isNaN(acho) && !isNaN(alto)){ 
      v = parseFloat(acho*alto,2); 
     } 
     $(':input[name="total' + $i + '"]').val(formatter.format(v)); 
     somatotal += v; 
     $(':input[name="valortotal"]').val(formatter.format(somatotal)); 
    } 
) 

,在此之后你的AJAX调用填充字段手动调用itemsModified()


我还没有尝试过这个自己,但也可能是你能留下你的代码原本它和你的Ajax调用在新值填充后,拨打方式:

$('#lista').trigger("change"); 

这将手动触发更改事件并导致您的更改处理程序执行格式设置。

+0

你能举个例子吗?它已经是一个函数..但是如何在填充后调用函数? – ledesma

+0

@GilbertoGonçalvesMachado - 查看最新编辑。 – jfriend00

+0

@GilbertoGonçalvesMachado - 仅供参考,它肯定看起来像函数中的一些变量需要在它们前面有'var',因此它们是局部变量而不是隐式全局变量。 – jfriend00