javascript - 将两个值相加来改变不同的事件
问题描述
我想知道如何从 2 个不同的.on('change')
. 例如我有这个:
$('.AdultsField').on('change', function () {
console.log($(this).val());
//document.getElementById("personasFiltroTop").innerHTML = JSON.stringify(this.value);
});
和这个:
$('.ChildsField').on('change', function () {
console.log($(this).val());
//document.getElementById("personasFiltroTop").innerHTML = JSON.stringify(this.value);
});
所以我想对这两个值进行加法运算,然后将结果保存在其他变量中以绑定到另一个 Id 或类,这就是我尝试过的:
$(document).ready(function () {
$(document).on('change', '.AdulstField.ChildsField', function () {
var number = parseInt($(".AdulstField").val()) + parseInt($(".AdulstField").val());
$('#totalNumPersonas').val(number);
});
});
我在这里尝试的是同时聆听和分配......这里更多相同:
$(document).on("change", ".AdulstField.ChildsField", function () {
var sumPersonas = 0;
$(".AdulstField.ChildsField").each(function () {
sumPersonas += +$(this).val();
});
$("#totalNumPersonas").val(sumPersonas);
document.getElementById("totalNumPersonas").innerHTML = JSON.stringify(this.value);
});
这是我的html:
<div class="form-group">
<label class="control-label col-md-6">Adultos</label>
<div class="col-md-6">
@Html.Select(cssClass: "form-control AdultsField", defaultValue: 2, minValue: 1, maxValue: 10)
</div>
</div>
<div class="form-group">
<label class="control-label col-md-6">Niños</label>
<div class="col-md-6">
@Html.Select(cssClass: "form-control SelectChildren ChildsField", defaultValue: 0, minValue: 0, maxValue: 6)
</div>
</div>
那么我如何能够接受它们并放置一个元素,上面写着:总角色:成人+儿童
太感谢了!!
解决方案
您的代码遵循正确的想法,只有两个问题。首先,当在单个对象中使用多个单独的选择器时,您需要用逗号分隔它们。其次,第一个类select
似乎是AmountField
,而不是AdultsField
(或错字AdulstField
)。尝试这个:
jQuery(function($) {
$(document).on('change', '.AmountField, .ChildsField', function() {
var number = (parseInt($(".AmountField").val(), 10) || 0) + (parseInt($(".ChildsField").val(), 10) || 0);
$('#totalNumPersonas').val(number);
});
});
这是一个完整的工作示例:
jQuery(function($) {
$(document).on('change', '.AmountField, .ChildsField', function() {
var number = (parseInt($(".AmountField").val(), 10) || 0) + (parseInt($(".ChildsField").val(), 10) || 0);
$('#totalNumPersonas').val(number);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class="form-control AmountField">
<option selected="selected" 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>
<select class="form-control SelectChildren ChildsField">
<option selected="selected" value="0">0</option>
<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>
<option value="6">6</option>
</select>
<input type="text" readonly="true" id="totalNumPersonas" />
推荐阅读
- java - (Java) 扫描字符串并将其放入二维数组
- java - 如何在@Query Annotation 中检索对象成员
- excel - 使用 LastRow、Time Stamp 和 Workbook.sheetchange 使用 Excel VBA 创建多个数据历史记录
- react-native - Expo SDK 36,“componentWillReceiveProps 已重命名,不推荐使用”错误的通用解决方案
- vim - 用Vim将花括号括在括号中?
- c++ - 在 2D 向量中跳跃
- html - 在 CSS 中,我可以让一个元素仅在用户登录时显示在用户个人资料上,而不是在其他人查看他们的个人资料时显示吗?
- angular - Angular 2+:使用 ngFor 循环中的验证独立访问反应式表单
- python-3.x - 编辑应用程序“关于”菜单 MacOSX(使用 tkinter)
- github - 如何在 Github 上搜索所有以文件扩展名 `.feature` 结尾的文件?