2013-12-13 1 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

'선택'을 다시 선언했습니다. '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; 

편집 이러한 3 개 라인

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

아, 알았어,이 코드를 추가하는 방법은 없니? 또는 나는 무엇인가 놓고 가고있다, 나는 지식의 나의 부족에 관해 사과한다 이것에서의 새로운 Im가 아니라 감사한다! – joro4651

+0

예 - html 값 중 하나를 사용할 때마다'parseInt'를 호출하십시오. 나는 대답을 업데이트 할 것이다. – Matt

+0

지금 나오고있는 NaN입니다. 내가 다른 것을 엉망으로 만들었는지 확인하기 위해 더 많은 코드를 볼 필요가 있습니까? 메뉴 자체의 무언가를 좋아하세요? – joro4651