Javascript 复选框单击事件

Javascript 复选框单击事件,javascript,jquery,html,Javascript,Jquery,Html,我在一个表中有一组复选框,当选中复选框时,我想更改行中不同列的值。我已经研究了一个解决方案,但我发现似乎没有什么能解决我的问题。我意识到我的绊脚石是我不熟悉jquery,所以任何建议都会有所帮助。最后,我希望对发生更改的列进行合计,以获得总计。所以,如果一个答案也包含了这方面的想法,我不会抱怨。一如既往地感谢你们,你们是一个伟大的团体 HTML <tr> <td><input name="amputeeGolfer" type="che

我在一个表中有一组复选框,当选中复选框时,我想更改行中不同列的值。我已经研究了一个解决方案,但我发现似乎没有什么能解决我的问题。我意识到我的绊脚石是我不熟悉jquery,所以任何建议都会有所帮助。最后,我希望对发生更改的列进行合计,以获得总计。所以,如果一个答案也包含了这方面的想法,我不会抱怨。一如既往地感谢你们,你们是一个伟大的团体

  HTML

    <tr>
        <td><input name="amputeeGolfer" type="checkbox" id="amputeeGolfer" value="amputee" onchange="changeFee"/>
            <label for="amputeeGolfer">Amputee Golfer</label></td>
        <td align="left"><label for="amputeeFee">$50.00</label></td>
        <td></td>
        <td><input name="amputeeFee" type="number" id="amputeeFee" class="tblRight" size="10" value="0.00"/></td>
   </tr>

jquery

   <script>
   function changeFee(val) {
     $('#amputeeFee').val(), "$50.00";
        }
   </script>
HTML
截肢高尔夫球手
$50.00
jquery
功能变更费(val){
$(“#截肢者费用”).val(),“$50.00”;
}

您可以使用复选框获取最近的tr
最近的('tr')
以确保输入在同一行中,并使用名称查找输入(“输入[name='parapterfee']”)并更改其值

function changeFee(val) {
   var amputeeFee = $(val).closest('tr').find("input[name='amputeeFee']");

   if($(val).prop("checked")){
       amputeeFee.val(50.00);
   }
   else{
      amputeeFee.val(0);
   }
}
功能变更费(val){
var ArputeFee=$(val).closest('tr').find(“输入[name='ArputeFee']);
//控制台日志(amp.长度);
如果($(val).prop(“选中”)){
截肢者费用(50.00美元);
}
否则{
截肢者费用val(0);
}
}

截肢高尔夫球手
$50.00

要在HTML的元素事件中调用类似于
changeFee(val)
的JavaScript函数,必须在脚本中调用相同的函数。作为HTML事件中的所有函数:
,而不是
,因为它不会重新确认它是JavaScript中的函数

那么代码将是:

<tr>
    <td><input name="amputeeGolfer" type="checkbox" id="amputeeGolfer" value="amputee" onchange="changeFee(this.value)"/>
        <label for="amputeeGolfer">Amputee Golfer</label></td>
    <td align="left"><label for="amputeeFee">$50.00</label></td>
    <td></td>
    <td><input name="amputeeFee" type="number" id="amputeeFee" class="tblRight" size="10" value="0.00"/></td>

截肢高尔夫球手
$50.00

功能齐全的代码段。不需要jQuery

当触发
onchange
事件时,它会检查复选框是刚刚选中还是未选中,并相应地切换价格。它甚至可以与各种其他复选框组合

功能切换价格(元素、价格){
如果(元素已选中){
document.getElementById(“截肢者费用”).value=parseInt(document.getElementById(“截肢者费用”).value)+价格;
}否则{
document.getElementById(“截肢者费用”).value=parseInt(document.getElementById(“截肢者费用”).value)——价格;
}
}

截肢高尔夫球手
$50.00

onchange=“changeFee”
应该是
onchange=“changeFee(this.value)”
val()
是一个getter
val(newValue)
是一个setter@ScottA如果这个答案对你有帮助,请考虑点击接受答案。这个答案接近我所需要的。我必须想出一种方法,将显示的结果重新格式化为货币形式,即不是50美元,而是50美元。我还没有研究过输出格式,所以我确信这是可能的。这似乎很有效,除了(大的除外),我在最初的问题中没有提到,我将有多行,每行都有自己的“费用”。对后续行有效的唯一方法是检查前一行。我对jquery做了一些小的修改来处理一个未检查的事件,但是现在我一直在研究如何在用户单击的任何一行中实现这一点。我试图找出如何将新代码包含到这个问题中,但还没有找到一种方法。也许是一个新问题?我在睡觉,而你在评论,你可以使用$(val).prop(“选中”)像更新的答案,新的伟大的一天:)