這是我的代碼的更新版本。我只能在瀏覽器的控制檯中看到p //付費率和m //標記%的值,但它們並未顯示在窗體loandata的指定字段中。JavaScript計算
var b, p, m, pmp, pm, pb, fp, misc, wc, tax, sui, o, fp, misc, t;
function calculate1(){
wc = document.set.wc.value; // workers comp %
tax = document.set.tax.value; // taxes %
sui = document.set.sui.value; // sui %
o = document.set.o.value; // other expenses %
fp =document.set.fp.value; // fund and processing %
misc = document.set.misc.value; // Misc expenses %
pb = (wc+tax+sui+o)/100*b; // variable used to calculate profit margin
document.set.pb.value = pb;
t = document.set.t.value; // target profit margin %
}
function calculate() {
b = document.loandata.b.value; //bill rate
b = (b=="")?(((m*p)/ 100) + p):b;
p = document.loandata.p.value; //pay rate
m = document.loandata.m.value; // markup %
m = (m=="")?((b-p)/p* 100):m;
pm = (b-((pb*p)/100+(b*fp)/100+(b*misc)/100+p)); // profit margin calculation
pm = Math.round(pm).toFixed(2);
document.loandata.pm.value = pm;
pmp = pm/b*100; // profit margin % calc
pmp = Math.round(pmp).toFixed(2); // profit margin %
document.loandata.pmp.value = pmp;
}
-1所有那些邪惡的,完全沒有意義'eval's的。 – 2012-01-31 23:20:10
+1,@Kolink,指出濫用'eval's。無論如何,究竟是什麼?所有這些縮寫變量名稱,不明確的函數名稱,缺少註釋,嚴重缺乏分號,不接受參數而是自己獲取它們的函數,缺少var關鍵字,不必要的變量賦值等。你甚至沒有指出變量的含義,因爲你把它們稱爲模棱兩可的名字。 – 2012-01-31 23:27:41
爲了清楚起見,Kolink說「eval」是不必要的,因爲對於所有其他計算,您可以說「wc = document.set.wc.value」等等。 @Tyler Crompton - 我同意你所說的一切 - 除了沒有分號:分號在JS中大多是可選的。我個人更喜歡一直使用它們,但是所顯示的代碼在沒有它們的情況下是完全有效的。 (雖然我猜我仍然同意,因爲代碼在幾個地方使用了它們,我認爲它應該是一致的:或者在必要時或者在所有時間使用它們,只要_...) – nnnnnn 2012-01-31 23:32:06