所以我設法把一些JavaScript(來自其他人的幫助)放在一起,這基本上是一個表單,它允許你改變一個項目的數量,並將其值添加到總數,如果其複選框被打勾文本字段在底部)。有人可以解釋這個JavaScript的工作原理嗎?
我明白其中的一些,它只是讓我困惑的更復雜的部分(比如邏輯)。有人可以通過我的代碼或者評論我的代碼的主要部分,這樣可以幫助我理解代碼是如何工作的。
<script type="text/javascript">
function bump(which, bywhat) {
var form = document.items;
var qty = form["qty" + which];
qty.value = Number(qty.value) + bywhat;
TotalCheckedValues(); // in case user bumped an already checked line
}
function TotalCheckedValues() {
var form = document.items;
var total = 0;
for (var n = 1; n <= 4; ++n)
{
if (form["cb"+n].checked) // if the checkbox of the item is ticked
{
total += form["cb"+n].value * form["qty"+n].value; //
}
}
form.Total.value = total.toFixed(2);
}
function validate(evt) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
var regex = /[0-9]|\./;
key = String.fromCharCode(key);
if(!regex.test(key)) {
theEvent.returnValue = false;
if (theEvent.preventDefault) {
theEvent.preventDefault();
}
}
}
</script>
</head>
<body>
<form name="items">
Item <input type="text" onkeypress='validate(event)'name="qty1" value="0"/>
<input type="button" onclick="bump(1,1)" value="+"/>
<input type="button" onclick="bump(1,-1)" value="-"/>
<input type="checkbox" name="cb1" value="20.00"
onClick="TotalCheckedValues()" />Service 1 (£20.00) <br />
Item <input type="text" onkeypress='validate(event)' name="qty2" value="0"/>
<input type="button" onclick="bump(2,1)" value="+"/>
<input type="button" onclick="bump(2,-1)" value="-"/>
<input type="checkbox" name="cb2" value="20.00"
onClick="TotalCheckedValues()" />Service 2 (£20.00) <br />
Item <input type="text" onkeypress='validate(event)' name="qty3" value="0"/>
<input type="button" onclick="bump(3,1)" value="+"/>
<input type="button" onclick="bump(3,-1)" value="-"/>
<input type="checkbox" name="cb3" value="20.00"
onClick="TotalCheckedValues()" />Service 3 (£20.00) <br />
Item <input type="text" onkeypress='validate(event)' name="qty4" value="0"/>
<input type="button" onclick="bump(4,1)" value="+"/>
<input type="button" onclick="bump(4,-1)" value="-"/>
<input type="checkbox" name="cb4" value="10.00"
onClick="TotalCheckedValues()" />Service 4 (£10.00) <br />
Total: <input type="text" name="Total" readonly size="5" />
<input type="reset" name="reset" value="Clear Selected">
</form>
</body>
</html>
那麼你想解釋哪個部分?如果它明智地縮進,它也會更容易。 – 2012-02-15 13:51:27
對不起,我不熟悉使用這個網站,所以在發佈時我有點困惑。基本上這三個函數,代碼中的「凹凸」部分是我最困惑的部分。 – 2012-02-15 14:00:43