Javascript 是否在选中/取消选中复选框时触发函数?
我需要重新计算页面上每次更改的总价。选择菜单和复选框。对于我使用的选择菜单Javascript 是否在选中/取消选中复选框时触发函数?,javascript,select,checkbox,Javascript,Select,Checkbox,我需要重新计算页面上每次更改的总价。选择菜单和复选框。对于我使用的选择菜单 $('select').on('change', function() { calculatePrice(); }); 但现在我需要一些类似的东西 $('input checkbox').on('change', function() { calculatePrice(); }); 不起作用。使用 $('input[type=checkbox]').on('ch
$('select').on('change', function() {
calculatePrice();
});
但现在我需要一些类似的东西
$('input checkbox').on('change', function() {
calculatePrice();
});
不起作用。使用
$('input[type=checkbox]').on('change', function() {
calculatePrice();
});
您可以为此使用完全相同的逻辑(甚至相同的函数):
$('select, input:checkbox').on('change', function() {
calculatePrice();
});
我在这里所做的是为同一个回调设置:“选择,输入:复选框”
。此选择器将针对任何
以及任何
元素。当其中一个触发更改事件时,将调用calculatePrice()
函数
我还建议您为元素提供一些标识属性,例如类值,如触发器\u计算。然后,您的选择器将具有更好的可读性,看起来如下所示:
$('.triggers_calculate')
选择器将只匹配具有触发器\u calculate
类的元素,当它们触发更改
事件时,将调用该函数。用逗号分隔选择器:
$('select, :checkbox').on('change', function() {
calculatePrice();
});
或者只需使用$(':input')
,其中还包括文本输入、文本区域和单选按钮。但不知道您是否需要它们。
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
</head>
<body id="contextmenu">
<form>
<table border width="100%">
<tr>
<td>Student</td>
<td>
<select name="stu" id="Student">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</td>
</tr>
<tr>
<td>House Type</td>
<td>
<input type="checkbox" name="accom" value="100" id="a1">
<label for="a1">Hotel</label>
<input type="checkbox" name="accom" value="0" id="a2">
<label for="a2">House</label>
</td>
</tr>
</table>
</form>
<script>
$('select, input:checkbox').on('change', function () {
calculatePrice();
});
</script>
</body>
</html>
学生
1.
2.
3.
4.
5.
户型
酒店
房子
$('select,input:checkbox')。在('change',函数(){
计算价格();
});
您面临的问题到底是什么?您是否无法以元素为目标?或者您没有看到触发的事件?有一个内置选择器来匹配复选框类型:input:checkbox
@Lix当然。有许多不同的方法可以做到这一点。所以这只是一种可能的方式,你是正确的。但是,在可能的方法中,此方法只包含额外的(不需要的)字符,这会损害代码的可读性。