我有一段精神融化在这里。两天来,我一直在看数字并试图让这个该死的计算起作用,但现在我无法让结果方法起作用。
我有1个文本框,2个复选框,1个下拉列表和一个显示结果的h1。
我需要帮助的是计算和结果的显示。 下面是我正在使用的JQuery代码。
var iAlt = 0;
// DROPDOWN
var halloAbo = "";
$('#hallo-abo').change(function (){
halloAbo = $('#hallo-abo').val();
//$('#sk').text(halloAbo);
});
// TEXTBOX
var maxregning = 0;
$('#maxRegning').focusout(function(){
maxregning = 0;
maxregning = $('#maxRegning').val();
$('#sk').text(maxregning);
});
// SELECT 1
var pakkerTotal = 0;
$('#pakker :checkbox').click(function() {
pakkerTotal = 0;
$('#pakker :checkbox:checked').each(function(idx, elm) {
pakkerTotal += parseInt(elm.value, 10);
});
//visResultat();
});
// SELECT 2
var betalTotal = 0;
$('#betal :checkbox').click(function() {
betalTotal = 0;
$('#betal :checkbox:checked').each(function(idx, elm) {
betalTotal += parseInt(elm.value, 10);
});
//visResultat();
});
// NEED HELP HERE
var buffer1 = 0;
var buffer2 = 0;
function visResultat(){
iAlt = eval(maxregning -= pakkerTotal -= betalTotal);
$('#sk').text(iAlt)
}
//$('#sk').text(iAlt);
下面是一些HTML
// DROPDOWN
<select id="hallo-abo" style="float:left;">
<option value="">Vælg dit abo</option>
<option value="49">test 1</option>
<option value="99">test 2</option>
ect
</select>
// TEXTBOX
<input type="textbox" id="maxRegning" value="" />
// CHECKBOX 1
<div id="pakker">
<input type="checkbox" value="39" />test 1<br/>
<input type="checkbox" value="79" />test 2<br/>
</div>
//CHECKBOX 2
<div id="betal">
<input type="checkbox" value="6,5" />test 1<br/>
<input type="checkbox" value="36" />test 2
</div>
// RESULT
<h1 id="sk">0</h1>
希望有人可以帮助我
答案 0 :(得分:1)
这看起来非常错误;
iAlt = eval(maxregning -= pakkerTotal -= betalTotal);
我怀疑你只是想要:
iAlt = maxregning - pakkerTotal - betalTotal;
第一点: - =运算符实际上更改左侧的值,而不是仅返回计算结果。所以你所做的就是改变maxregning和pakkerTotal。
第二:你正在做一些算术,然后“评估”结果。这毫无意义;如果数学出现在12,它将评估12.toString(),即“12”。 eval(“12”)是12。
第三:Eval几乎总是错误的答案;)如果你认为你需要eval()任何东西,停下来思考它,然后不要这样做。