2013-12-13 72 views
0
var select; 
window.onload = function() { 
var select = document.getElementById("money"); 
console.log(select); 
} 

function changedepositedInput(objDropDown) { 
console.log(parseInt(objDropDown)); 
var objdeposited = document.getElementById("deposited"); 
objdeposited.value=parseInt(objdeposited.value); 
var total=parseInt(objdeposited.value); 
objdeposited.value = parseInt(objDropDown.value+total); 
objdeposited.value = parseInt(objdeposited.value); 
} 
</script> 
<h1>Vending Machine Project</h1> 
<form name="vendingmachine" action=" "> 
Choose Bevrage<br> 
     <input name="item" type="radio" value="water" checked="checked">Water 75 cents<br> 
     <input name="item" type="radio" value="soda">Soda $1.50<br> 
     <input name="item" type="radio" value="coffee">Coffee $1.00<br> 
     <input name="item" type="radio" value="beer">Beer $2.00<br> 
<p> 
    <label>Deposit Money: 
     <select name="money" id="money" onchange="changedepositedInput(this)"> 
      <option>Choose Amount</option> 
      <option value="10">10 cents</option> 
      <option value="25">25 cents</option> 
      <option value="50">50 cents</option> 
      <option value="75">75 cents</option> 
      <option value="100">$1.00</option> 
     </select> 
    </label> 
</p> 
<p>Total Deposited:<input name="deposited" id="deposited" type="text" readonly="TRUE" value=" "></p> 

使用此代碼我沒有得到一個固體數字的回報,例如在下拉菜單中我會選擇兩個值,即50和75,他們將結合爲5075,是這是否意味着它仍然在字符串的某個地方運行,如果是的話呢?parseInt沒有得到額外的回報

+0

您正在重新聲明'select'。 'var'在範圍內聲明一個_local_變量。 – elclanrs

+0

我需要做些什麼來改變這一點,對不起,我對此感到新奇,謝謝! – joro4651

回答

1

例如在一個下拉菜單中我會選擇兩個值,即50和75,他們將合併爲5075,這是否意味着它仍然通過字符串在某處運行它,如果是這樣?

是的,在這裏:

objdeposited.value = parseInt(objDropDown.value+total); 

objDropDown.value是一個字符串,例如'50'total是一個數字,例如, 75

在JavaScript中,'50'+75'5075'

您可以

var total = parseInt(objdeposited.value); 
objdeposited.value = parseInt(objDropDown.value||'0') + total; 

編輯替代這些三線

var total=parseInt(objdeposited.value); 
objdeposited.value = parseInt(objDropDown.value+total); 
objdeposited.value = parseInt(objdeposited.value); 

deposited值的默認值是一個空間" "這是造成問題。將其更改爲空字符串""。對所有對parseInt(或parseFloat)的調用還要添加一個||'0'。見http://jsfiddle.net/es2yS/1/

+0

啊,好吧有沒有什麼辦法可以讓這段代碼加起來呢?或者我正在留下什麼東西,我對我缺乏知識表示歉意,對此我很感興趣,但謝謝! – joro4651

+0

是的 - 每次使用其中一個html值時調用'parseInt'。我會更新答案。 – Matt

+0

現在它會出現NaN,您是否需要查看更多的代碼才能看到我是否搞砸了其他的東西?像菜單本身的東西? – joro4651