我有2个输入复选框和一个选择列表。
每当选中一个复选框时,应该在元素中添加一定数量的金额"金额"作为它的身份。
例如:基本产品价格为6000,只要选中复选框,就会向该基本产品价格添加一定数量的金额。
对于具有10个输入值的选择框,这是相同的。每个值乘以600,然后将结果添加到元素中,其中" amount"作为身份。
查看JSFiddle以获得完整的理解:http://jsfiddle.net/0j796h33/13/
这是我为选择框尝试的内容。
function ep(t)
{
// addedprice = 0;
var addedprice = t.value * 600;
total = total + addedprice;
// total = 6000 - total;
document.getElementById('total').innerHTML = " (+) "+ addedprice;
loginer = document.getElementById('login').checked;
profer = document.getElementById('prof').checked;
if(t.value > 0)
{
// total = total + addedprice;
if(wpress)
{
wp(addedprice);
}
if(blogger)
{
blog(addedprice);
}
if(loginer)
{
login(addedprice);
}
if(profer)
{
prof(addedprice);
}
}
document.getElementById('amount').value = 6000 + total;
total = 6000 + total;
document.getElementById('amount').value = total;
}
我需要在Javascript中实现它。
答案 0 :(得分:1)
请查看实施示例here fiddle。
我已经使用了jQuery,因为它更容易,并且需要更少的代码。我认为它或多或少都是你要求的。
$("#login").change(function (ev) {
var qty = +($("#amount").val());
qty += $(this).prop("checked") ? 1500 : -1500;
$("#amount").val(qty);
updateAmountSpan(qty);
});
$("#prof").change(function (ev) {
var qty = +($("#amount").val());
qty += $(this).prop("checked") ? 2000 : -2000;
$("#amount").val(qty);
updateAmountSpan(qty);
});
var previous;
$("#ep").on('click', function () {
previous = this.value;
}).change(function () {
var qty = +($("#amount").val()),
qty_sel = +($(this).val()) * 600,
qty_prev = previous * 600;
$("#amount").val(qty - qty_prev + qty_sel);
updateAmountSpan(qty - qty_prev + qty_sel);
});
var updateAmountSpan = function (qty) {
(qty > 0) ? $("#total").text("6000 (+) " + qty) : $("#total").text("6000");
};
希望它有所帮助,祝新年快乐。
答案 1 :(得分:0)
$(document).ready(function() {
$("#login").change(function() {
if(this.checked) {
login();
}
});

尝试这样做,如果你需要添加一个else语句,如果以前添加了某些东西就删除。
答案 2 :(得分:0)
此代码将采用每个选定的项目并将其乘以600然后将其添加到总数和输入量中:
var addedprice = 0;
var total = parseInt(document.getElementById("total").innerHTML);
var amount = document.getElementById("amount");
function ep()
{
var sValue = parseInt($( "#ep" ).val()) * 600 ;
amount.value = sValue;
total = total + sValue;
document.getElementById("total").innerHTML = total;
}
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<input type=checkbox id="login" onchange="login()"> Item 1 <br/>
<input type=checkbox id="prof" onchange="prof()"> Item 2<br/>
<select id="ep" onchange="ep()">
<option 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>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>Item 3 <br>
<input type="text" id="amount"><br>
<span id="total">6000 </span>