2011-01-27 46 views
0

我有3个输入字段,它们的值是预先填充的,总值是200小时。我计算的日期为date1和date2的totalhours/datediff。当我的文本框的文本值更改使用jQuery时,如何调用一个函数?

我的问题是如果我更改date2的值,那么我希望avghours值相应地改变。我不知道这事件应该被用来大火不计算

<input type="text" id ="avghours"/> 
<input type="text" id ="date1"/> 
<input type="text" id ="date2"/> 

Javascript代码

function getavg() 
{ 

$('#avghours').val()=totalhours/datediff($('#date2').val(),$('#date1').val(),'day');//datediff is userdefined function to get the datedifference 


} 

变化将仅聚焦是否损失,以致可能无法方法是存在的我可以使用的任何其他事件。

感谢

Prady

回答

2

变化

$('#avghours').val()=totalhours/datediff($('#date2').val(), 
              $('#date1').val(),'day'); 

$("#date2").bind("keyup blur change mouseup",function() { 
    var d = parseInt(datediff($('#date2').val()); 
    var v = (totalhours/d) + ' ' + $('#date1').val() + ' day'; <-- mergestrings 
    $('#avghours').val(v); 
}); 

通过功能,而不是右手分配。

+0

我不明白为什么mergestring? datediff是用户定义的函数来计算日期差异。或者我错过了一些非常明显的东西? – Prady 2011-01-27 11:33:00

+0

不,我了解你的正确代码,但是,我更愿意保持它的可读性;) – 2011-01-27 11:37:19

+0

哦好吧...我现在明白了......但是如果没有使用键盘,键盘工作。我的意思是像它的粘贴使用鼠标 – Prady 2011-01-27 11:44:07

0

如果你想立即更新,当用户类型,你可以使用keyup事件。

+0

如果用户使用亘古不使用他将鼠标这个事件火灾粘贴日期从另一个领域的键盘会发生什么? – Prady 2011-01-27 11:23:23

0

你可以试试按键等等...

$('#date2').keypress(function() { 
//do calculating average logic here 
}); 

然后在文本框的值已经改变

0

可以使用.change()事件此,这将回升。

$("#date2").change(function(){ 

}); 
0
[![<html> 
<head> 
<title></title> 
<script> 

function multy(val) 
{ 
alert(val.value+"--"+val.id); 
} 

</script> 
</head> 
<body> 
<input id="txtdemo" type="text" onchange="multy(this);"></br> 
<input id="txtdemo" type="text" onchange="multy(this);"> 
</input> 
</body> 
</html>][1]][1] 
相关问题