2011-08-03 5 views
1

두 개의 자바 스크립트 텍스트 상자가 있습니다.배열을 더하는 자바 스크립트 (수학)

<input type="text" name="test" value="300" /> 
<input type="text" name="test" value="500" /> 

텍스트 상자에있는 항목의 총 가격을 알려면 javascript를 어떻게 사용할 수 있습니까?

이 작품이 마음에 드시나요?

var price = document.getElementById("test"); 
alert(price) 

답변

1

이 계정에 모든 input 요소를 취할 것입니다. 루프에서 그 값을 type별로 필터 얻을 :

var inputs = document.getElementsByTagName("input"); 
var total = 0; 

for (var i = 0; i < inputs.length; i++){ 
    if (inputs[i].type = "text"){ 
     total += parseInt(inputs[i].value, 10); 
    } 
} 

alert(total); 
+0

큰 도움을 주셔서 감사합니다. 내가 변경해야만 한 것은 document.getElementByTagName에서 document.getElementbyName까지입니다. 어느 쪽이든 효과가 있었지만 페이지에 숫자가없는 다른 텍스트 상자가있었습니다. 고마워요! – Jake

+0

AFAIK'getElementsByName'은 IE에서 작동하지 않습니다.'getElementsByTagName'을 사용하고 루프 내에서 이름으로 필터링하는 것을 선호합니다. –

+0

오케이. 당신은 "가격표"라는 최종 텍스트 상자를 가질 수 있도록 텍스트 상자에 모든 가격이 배열에서 올 수 있도록 어떻게 만들 수 있는지 알고 있습니까? 기본적으로 두 텍스트 상자 값을 가져 와서 쉼표로 구분하여 하나의 텍스트 상자에 넣는 것입니다. – Jake

0
<input id="test1" type="text" name="test" value="300" /> 
<input id="test2" type="text" name="test" value="500" /> 

JS는 : (당신이 많은 경우 유용)

var price = parseInt(document.getElementById("test1").value, 10) + parseInt(document.getElementById("test2").value, 10); 
0
<input id="price1" type="text" name="test" value="300" /> 
<input id="price2" type="text" name="test" value="500" /> 

이 작동합니다

var price = document.getElementById("price1").value+document.getElementById("price2").value; 
alert(price) 

id="price1" 또는 id="price2"

0

와 다른 태그를하지 마십시오 당신 서면으로 작성된 것은 여러 가지 이유로 작동하지 않습니다. 먼저 이름에서 알 수 있듯이 getElementByIdid 속성 값을 기반으로 요소를 가져옵니다. input 요소에 id 속성을 지정하지 않았으므로 작동하지 않습니다.

두 번째로 document.getElementById('someId')은 요소를 반환하지만 값을 원합니다. 당신은 그것을 얻기 위해 value 속성을 사용할 수 있습니다 : 이것은 다음과 같은 HTML 작동합니다

var price1 = parseInt(document.getElementById("test1").value, 10); 
var price2 = parseInt(document.getElementById("test2").value, 10); 
alert(price1 + price2); 

:

<input type="text" name="test" id="test1" value="300" /> 
<input type="text" name="test" id="test2" value="500" /> 

주에게 parseInt의 사용을. value 속성은 문자열을 반환하므로 parseInt을 사용하여이를 숫자로 구문 분석합니다. 사용하지 않으면 price1 + price2은 문자열을 연결합니다.

+0

잘 배열을 요약하고 싶습니다. getElementByName을 할 수 있습니까? 데이터베이스에서 추출하여 얼마나 많은 레코드가 있는지 알지 못합니다. 내가 아는 전부는 각각 거기에 그들 자신의 가격을 가질 것입니다. 데이터베이스에서 배열을 요약 할 수 있도록 어떻게 만들 수 있습니까? – Jake

+0

아, 죄송합니다. 질문을 더 자세히 읽어야합니다. 이 경우 @Igor Dymov의 대답을 참조하십시오.이 대답은'getElementById'를 사용하지 않으므로 HTML을 변경할 필요가 없습니다. –

관련 문제