如何使用jquery在我的文本框的文本值更改时调用函数?

时间:2011-01-27 11:13:20

标签: javascript jquery

我有3个输入字段,其值已预先填充,常量值为200小时。我正在计算avghours为date1和date2的totalhours / datediff。

我的问题是,如果我更改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

5 个答案:

答案 0 :(得分: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);
 });

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

答案 1 :(得分:0)

如果要在用户输入时立即更新,可以使用keyup事件。

答案 2 :(得分:0)

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

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

然后,当文本框的值发生变化时,这将会恢复

答案 3 :(得分:0)

您可以使用 .change() 事件。

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

});

答案 4 :(得分: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]