2012-06-21 4 views
0

에 새 덧글을 입력하십시오. 내가 할 수있는 한 비슷한 질문이 있지만 다른 모든 것들을 함께 가져올 해결책이 필요합니다. 모든 도움이 크게 감사하겠습니다!자바 스크립트를 사용하여 숫자 텍스트 입력에서 값을 가져 와서 라디오 버튼

I가 {패키지의 가격}을 곱한 {사용자 수}에 따라 가격을 계산하는 데 필요한 다음과 같은 형식 :

    <form id="quote_form"> 

         <fieldset> 

          <div class="input"> 
           <label>Number of Users:</label> <input type="text" onkeypress="return isNumberKey(event)" name="text" /> 
          </div> 

          <div class="input"> 
           <label>24/7/365 Support:</label> <input type="checkbox" style="vertical-align:middle;margin:7px 0;" class="bgclear" /> 
          </div> 

          <div class="input"> 

           <table class="table-2 h7"> 

            <tbody> 
             <tr> 
              <td class="color3">Select a package:</td> 
              <td class="color2">Standard <input id="r1" name="radioCh" value="standard" type="radio" class="bgclear" /></td> 
              <td class="color2">Standard + <input id="r2" name="radioCh" value="standardPlus" type="radio" class="bgclear" /></td> 
              <td class="color2">Advanced <input id="r3" name="radioCh" value="advanced" type="radio" class="bgclear" /></td> 
             </tr> 
             <tr> 
              <td>Mail Box</td> 
              <td>30 GB</td> 
              <td>30 GB</td> 
              <td>30 GB</td> 
             </tr> 
             <tr> 
              <td>File Storage</td> 
              <td>10 GB</td> 
              <td>10 GB</td> 
              <td>10 GB</td> 
             </tr> 
             <tr> 
              <td>Microsoft Office</td> 
              <td><img alt="included" src="images/tick.png"></td> 
              <td><img alt="included" src="images/tick.png"></td> 
              <td><img alt="included" src="images/tick.png"></td> 
             </tr> 
             <tr> 
              <td>Microsoft Exchange</td> 
              <td><img alt="included" src="images/tick.png"></td> 
              <td><img alt="included" src="images/tick.png"></td> 
              <td><img alt="included" src="images/tick.png"></td> 
             </tr> 
             <tr> 
              <td>Antivirus</td> 
              <td><img alt="included" src="images/tick.png"></td> 
              <td><img alt="included" src="images/tick.png"></td> 
              <td><img alt="included" src="images/tick.png"></td> 
             </tr> 
             <tr> 
              <td>CRM</td> 
              <td><img alt="not included" src="images/cross.png"></td> 
              <td><img alt="included" src="images/tick.png"></td> 
              <td><img alt="included" src="images/tick.png"></td> 
             </tr> 
             <tr> 
              <td>Device Independent</td> 
              <td><img alt="not included" src="images/cross.png"></td> 
              <td><img alt="included" src="images/tick.png"></td> 
              <td><img alt="included" src="images/tick.png"></td> 
             </tr> 
             <tr> 
              <td>PBX &amp; VoIP</td> 
              <td><img alt="not included" src="images/cross.png"></td> 
              <td><img alt="not included" src="images/cross.png"></td> 
              <td><img alt="included" src="images/tick.png"></td> 
             </tr> 
            </tbody> 

           </table> 

          </div> 

          <div class="input"> 
           <a class="button-3" onclick="getTotal();_gaq.push(['_trackEvent','Quick Quote','Calculate Button','Quote Generated']);">Calculate<img alt="calculate" src="images/buttons/button-3-arrow.png"></a> <div id="finalPrice"></div> 
          </div> 

         </fieldset> 

        </form> 

내가 값을 반환하기 위해 사용하고 다음 JS (! 나는)은 불완전하고 현재 실 거예요 입력 상자에서 숫자 값 (이 작업을 수행하는 방법을 모르고 잡아 것을 알고) :

function isNumberKey(evt) { 
var charCode = (evt.which) ? evt.which : event.keyCode 
if (charCode > 31 && (charCode < 48 || charCode > 57)) 
    return false; 

return true; 
} 

function getUserNumber() { 
var employeeNum = 0; 
var theForm = document.forms["quote_form"]; 
var numInput = theForm.elements["text"]; 
} 

var monthFee = new Array(); 
monthFee["standard"]=60; 
monthFee["standardPlus"]=80; 
monthFee["advanced"]=95; 

function getFastQuote() { 
var fastQuote = 0; 
var theForm = document.forms["quote_form"]; 
var radioButton = theForm.elements["radioCh"]; 

for(var i = 0; i < radioButton.length; i++) 
{ 
    if(radioButton[i].checked) 
    { 
     fastQuote = monthFee[radioButton[i].value]; 
     break; 
    } 
} 
return fastQuote; 
} 

function getTotal() { 
var quotePrice = getFastQuote * getUserNumber; 

document.getElementById('finalPrice').innerHTML = 'Price from: £' + quotePrice; 
} 
+0

입력 값은 TEXT이므로 수학을 수행하려면 숫자 데이터 유형으로 변환해야합니다. num = parseInt (val) 또는 num = parseFloat (val) –

+1

FYI : 문제를 설명하는 jsFiddle을 만들면 대개 더 빨리 도움을 얻습니다. –

답변

0

난 당신이 올바르게 JS 함수를 호출하지 않습니다 생각합니다. 이

var quotePrice = getFastQuote() * getUserNumber(); 

는 또한 문자열의 타입 캐스팅에 대한 @Diodeus에 의해 코멘트를 읽을 수 있어야하는 동안 코드는

var quotePrice = getFastQuote * getUserNumber; 

입니다. getUserNumber() 메서드에 반환 값이 없으므로 해당 함수의 마지막 줄에 return numInput.value;을 추가하십시오.

관련 문제