2016-05-13 33 views
-2

我有一个问题,我有两个文本字段,都具有默认打开的页面或reaload当值,值了,我从MySQL和PHP得到的,就像这样:如何使用键控或输入进行操作?的JavaScript(jQuery的)

<input type="text" id="field1" value="<?php echo $first_value; ?>" /> 
<input type="text" id="utility" value="<?php echo $second_value; ?>" /> 

而且用javascript我想这样做,当我改变#field1的值做一个减法,并显示结果为​​。

的问题是,该操作的结果是不正确的,例如:

如果#field1有500首次​​1041.00,现在如果我改变的#field1值与1000新价值​​为-69.06,我想它做的操作,每次我删除或添加新的号码,但我不知道如何解决这个问题,这是我的JavaScript(jQuery的)代码:

$('#field1').on('input', function() { 

    var difference = parseFloat($(this).val()); 
    var utility = $('#utility').val().replace(/,/g, ''); 


    var total = utility - difference; 

    if (!total) { total = 0; } 

    $('#utility').val(parseFloat(Math.round(total * 100)/100).toFixed(2)); 
}); 
+1

'做一个休息'(Representational state transfer)你的意思是对PHP服务器进行Ajax调用吗? – zipzit

+1

'问题是操作的结果是不正确的,例如:'它怎么不正确?它应该是什么样子纠正?什么是'操作'?你需要告诉我们你想要做什么 – Kisaragi

+0

@Kisaragi我试图用这些值做一个休息,并立即看到结果,但默认值#utilty应该是不可变的每一次想要做的操作,总是应该是PHP变量的价值,并看看它是如何变化的,对不起,我试图解释它最好的我可以做的,我的英语不是很好 –

回答

0

我解决了我通过创建一个具有相同v的新输入字段类型hidden来解决问题的​​ALUE,我把它命名为#new_utilty

$('#field1').on('input', function() { 

    var difference = parseFloat($(this).val()); 
    var utility = $('#new_utility').val().replace(/,/g, ''); 


    var total = utility - difference; 

    if (!total) { 

     total = 0; 
     $('#utility').val(parseFloat(Math.round(utility * 100)/100).toFixed(2)); 

    } else { 

     $('#utility').val(parseFloat(Math.round(total * 100)/100).toFixed(2)); 
    } 
}); 

这是没有Ajax调用

1

你的其他选择,我的解决方案,无需增加额外的字段是使用.on('blur',function(){})或者干脆.blur(function(){})

这将导致输入离开字段强制刷新时发生的操作。

相关问题