2011-01-27 28 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] 
相關問題