用于将函数输出实现到另一个函数的逻辑

时间:2014-12-31 17:57:20

标签: javascript jquery html

我有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中实现它。

3 个答案:

答案 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>