我有一个包含以下代码的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脚本中做的是找到触发对脚本调用的文本框,或者调用我的脚本时哪个框具有焦点。我希望这是有道理的 !! ,我真的无法掌握这个元素,有人可以给我一些指示吗?
提前致谢
答案 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
});