2014-01-06 48 views
-1
<input type="checkbox" id="star1" /> 
<input type="checkbox" id="star2" /> 
<input type="checkbox" id="star3" /> 
<input type="checkbox" id="star4" /> 
<input type="checkbox" id="star5" /> 
<input type="button" value="Build" onclick="build()" /> 

function build(){ 
var balance = 300; 
for (var i =1; i < 6; i++) { 

    if(document.getElementById("star"+i).checked) { 
     balance = balance - 100; 
    } 
} 
$("#bal").text("Balance: $" + balance); 
} 

在我的示例代碼中,玩家的餘額爲300美元,這意味着他只能負擔建造1star,2star,3星級酒店。每家酒店的建設費用爲100美元。因此,當他檢查第四個複選框時,應該出現一條錯誤消息,提示「你買不起這個配對。」如果信貸餘額足夠,啓用複選框

+0

在循環中使用if語句。它會像'if(balance> = 100)'一樣...... – meagar

+0

meagar餘額應該與建立酒店的「成本」相比......或者你的意思是循環確保每次餘額是至少=> 100 .. hmm, –

+0

你爲什麼使用複選框?如果用戶要在不同類型的東西之間進行選擇,單選按鈕是否更合適? – nnnnnn

回答

1

我建議使用單選按鈕,選項爲「不選」。此外,你可以把收音機按鈕value屬性,像這樣:

<input type="radio" name="hotel" checked="checked" /> No selection 
<input type="radio" name="hotel" id="star1" value="100" /> 1 star 
<input type="radio" name="hotel" id="star2" value="200" /> 2 star 

然後,您可以檢查對選定的單選按鈕的值的平衡,以查看用戶是否能負擔得起。

這裏是jQuery代碼可能是什麼樣子:

var $selectedHotel = $('input:radio[name=hotel][value]:checked'); 
if ($selectedHotel.length > 0) { 
    var cost = parseInt($selectedHotel.val(), 10); 
    if (cost > balance) { 
     alert("Sorry mate, you can't afford that!"); 
    } else { 
     alert("You built it, mate!"); 
    } 
} else { 
    alert('You must select something first.'); 
} 

jsfiddle

下選擇獲取所有單選按鈕與「酒店」爲name屬性,並有一個value屬性(排除「無選擇」按鈕)並且被檢查,其應該最多隻有一個按鈕。

'input:radio[name=hotel][value]:checked'

+0

我不太明白你在第一行的$ selectedHotel放什麼東西? [name = hotel [value]:進行了檢查? –

+0

@EltonFrederik - 我在答案的底部添加了一個解釋。讓我知道它是否有幫助。 –

+0

是的,我現在明白了。謝謝。 –

0
for (var i =1; i <= 5; i++) { 
    if(document.getElementById("star"+i).checked) { 
     if(balance > 100) 
      balance -= 100; 
     else 
      alert("You can't afford it mate."); 
    } 
} 

這是您的實際代碼的修復程序,但它不像您描述的功能。然而,這個功能不會與你設計的用戶界面一起工作(你可以在沒有前3個的情況下檢查第4個框),所以你首先需要解決更多的問題。

+0

你說得對。我試圖讓用戶選擇他想要建造什麼類型的酒店。檢查他是否可以負擔得起。目前修復提醒他,他買不起它,但它完成了他可以承受的部分構建。 –