找到触发事件的输入框

时间:2011-05-18 16:28:18

标签: jquery

我有一个包含以下代码的html脚本

   <input type="text" name="" id="PrDisplay" onkeyup="calcCosting()"/></td>
   <input type="text" name="" id="PrFreight" onkeyup="calcCosting()"/></td>

我有很多像这样的行,当任何输入框有一个条目时,我的JQ函数被触发

这是Js代码

function calcCosting() {

// calculate the sum of all the chargable items 
dis = $('#PrDisplay').val() /1   ;
fre = $('#PrFreight').val() /1 ;    
pro = $('#PrProcess').val()/1   ;   
str = $('#PrStructual').val() /1  ; 
gro = $('#PrGroundworks').val()/1 ; 
sof = $('#PrSoftware').val() /1 ;   
har = $('#PrHardware').val() /1 ;   
add = $('#PrAdditional').val() /1 ;

tot  = dis + fre + pro + str + gro + sof + har + add;
$('#PrTotal').val(tot) ; // display the total 
    }

这很好用,并将所有总计相加,以便在ID为PrTotal的测试框中显示它们。

我想在JQ脚本中做的是找到触发对脚本调用的文本框,或者调用我的脚本时哪个框具有焦点。我希望这是有道理的 !! ,我真的无法掌握这个元素,有人可以给我一些指示吗?

提前致谢

2 个答案:

答案 0 :(得分:3)

您可以在代码中使用onkeyup="calcCosting(this)",并在calcCosting函数中获取该参数。

<强>更新

此外,您可以使用JS / Jquery将事件绑定到<input>标记(而不是使用HTML属性)并轻松访问this对象:

document.getElementById('PrDisplay').onkeyup=calcCosting;

答案 1 :(得分:0)

您可以尝试使用它,绑定它并一次性在jQuery中分配函数,如下所示:

$("input:text").bind("keyup", function () {
    // $(this) == current input (type=text) element

    // calculate the sum of all the chargable items 
    dis = $('#PrDisplay').val() /1   ;
    fre = $('#PrFreight').val() /1 ;    
    pro = $('#PrProcess').val()/1   ;   
    str = $('#PrStructual').val() /1  ; 
    gro = $('#PrGroundworks').val()/1 ; 
    sof = $('#PrSoftware').val() /1 ;   
    har = $('#PrHardware').val() /1 ;   
    add = $('#PrAdditional').val() /1 ;

    tot  = dis + fre + pro + str + gro + sof + har + add;
    $('#PrTotal').val(tot) ; // display the total 
});