2014-11-14 116 views
1

我是編碼新手(試圖學習),我無法弄清楚如何獲取函數外的複選框值。功能之外的複選框變量

的Javascript:

$(document).ready(function() { 

    var quantity= parseInt($('#phones').val()); 

    $("#check1 input:checkbox").change(function() { 
     var feature = 0; 
     $("#check1 input:checkbox").each(function() { 
      if ($(this).is(':checked')) { 
       feature += parseInt($(this).prop('value')); 
      } 
     }); 

    }); 

    var grand = feature * (quantity * Number ('0.1')) 

    var total = quantity + grand 

}); 

HTML:

<input id="phones" type="numerical" value="0" style="text-align: right"/> 

<div id="check1"> 

<input type="checkbox" value="1" /> 
+0

你是什麼意思是什麼呢? – OnlyMAJ 2014-11-14 16:29:19

+0

您無法在事件處理程序中保留所有變量和數學的任何特殊原因? – melancia 2014-11-14 16:29:29

+0

有多個複選框,每個複選框的默認值爲0,當它被選中時= 1.複選框的值乘以一個方程(每個複選框有不同的方程),所有複選框的結果和產品的數量作爲總計加起來。 – 2014-11-14 16:35:14

回答

0
function getResult(feature, phones) { 
    if (feature <= 0 || phones <= 0) { 
    return 'Error...., enter the number of phones and check some checkbox'; 
    } 

    return (feature * (+phones * 0.1)) + +phones; 
} 

function getFeature() { 
    var feature = 0; 

    $('#check1 input:checkbox:checked').each(function() { 
    feature += +$(this).prop('value') || 1; 
    }); 

    return feature; 
} 

$(document).ready(function() { 
    var $phones = $('#phones'), 
     $result = $('#result'); 

    $("#check1 input:checkbox").change(function() { 
    $result.html(getResult(getFeature(), $phones.val())); 
    }); 

    $("#phones").keyup(function() { 
    $result.html(getResult(getFeature(), $phones.val())); 
    }); 
}); 

演示:http://jsbin.com/hivilu/2/