我有一个示例网站here。
在文档的底部,有一个标有“Potential Gen Ed TOC”的部分。
如果您打开标有“合成”的Accordion,您会在右侧看到下拉菜单。
正如您所看到的,在此JavaScript中,它基于是否已激活复选框。然后'Potential Gen Ed TOC'将根据指定的值显示一个数字。
$(function($) {
var sum = 0;
$('#CourseMenu :checkbox').click(function() {
sum = 0;
$('#CourseMenu :checkbox:checked').each(function(idx, elm) {
sum += parseInt(elm.value, 10);
});
$('#total_potential').html(sum);
});
});
当您继续在不同课程中选中复选框时,将显示一笔金额。
我现在要做的是取消JS中的复选框触发器。我用下拉菜单替换了它们,这些菜单说“Credits - Select Credit”。
每当有人选择一个值时,“Potential Gen Ed TOC”会根据该值缓慢增加。
我认为我所要做的就是分配 value =“任意数字”,然后JavaScript会接受。
在JavaScript(上面)中,我无法从下拉菜单中提取这些值。如您所见,JS基于复选框。
一旦我能够从下拉菜单中提取值,我希望将这些值相加,但不会显示高于72的数字,无论选择了多少总转移信用。
这有意义吗?
编辑:这是一些标记,以了解我正在尝试从(下拉菜单)中提取值......
<fieldset name = Comunication>
<legend>Transfer Course Information</legend>
<label for="School Int.">School Int.</label>
<input name="School Int." type="text" size="6" maxlength="6" />
<label for="ID">ID</label>
<input name="ID" type="text" id="ID" size="8" />
<label for="Name">Name</label>
<input name="Name" type="text" id="Name" size="25" />
<label for="Grade">Grade</label>
<input name="Grade" type="text" id="Grade" size="2" />
<label for="COM1"></label>
<form id="form2" name="form2" method="post" action="">
<label for="Credits">Credits</label>
<select name="Credits" id="Credits">
<option value="0">Select Credit</option>
<option value="0.67">1 QtrCr.</option>
<option value="1.33">2 QtrCr.</option>
<option value="2.00">3 QtrCr.</option>
<option value="2.67">4 QtrCr.</option>
<option value="3.33">5 QtrCr.</option>
<option value="4.00">6 QtrCr.</option>
<option value="4.67">7 QtrCr.</option>
<option value="5.33">8 QrtCr.</option>
<option value="6.00">9 QtrCr.</option>
<option value="6.67">10 QtrCr.</option>
<option value="1">1 SemCr.</option>
<option value="2">2 SemCr. </option>
<option value="3">3 SemCr.</option>
<option value="4">4 SemCr.</option>
<option value="5">5 SemCr.</option>
<option value="6">6 SemCr.</option>
<option value="7">7 SemCr. </option>
<option value="8">8 SemCr.</option>
<option value="9">9 SemCr.</option>
<option value="10">10 SemCr.</option>
</select>
</form>
Transferrable
<input name="COM105" type="checkbox" id="COM1" />
答案 0 :(得分:6)
$('#total_potential').html(Math.min(sum,72));
将显示总和高达72然后只有72
答案 1 :(得分:1)
以下是选择输入的方法:
$(function($) {
$('#CourseMenu select').change(function() {
var sum = 0;
$('#CourseMenu select').each(function(idx, elm) {
sum += parseInt(elm.value, 10);
});
$('#total_potential').html(Math.min(sum,72));
});
});
重要提示
您的表单HTML标记存在一些严重问题。您在某些表示无效标记的元素中有重复ID,id属性在页面中必须是唯一的。您的一些输入也具有相同的名称,这意味着只有一个值将与表单一起提交。您可以在输入名称中使用数组来提交多个值。
答案 2 :(得分:0)
怎么样:
if (sum <= 72) {
$('#total_potential').html(sum);
} else {
$('#total_potential').html("72");
}