2010-04-05 7 views
1

두 필드가 서로 곱 해져서 세 번째 양식의 값을 채워야합니다. 다음은 HTML입니다 :이 요소 값을 설정하는 JavaScript는 어떻게 작성합니까?

<input type="text" name="estimate[concrete][price]" value="" onBlur="calc_concreteprice(document.forms.mainform);" /> 
per SF <strong>times</strong> 
<input type="text" name="estimate[concrete][sqft]" value="" onBlur="calc_concreteprice(document.forms.mainform);" /> SF 
= <input type="text" name="estimate[concrete][quick_total]" value="" /> 

가 여기 내 자바 스크립트입니다 :

function calc_concreteprice(mainform) { 
     var oprice; 
     var ototal; 

     oprice = ((mainform.estimate[concrete][sqft].value) * (mainform.estimate[concrete][price].value)); 
     ototal = (oprice); 

     mainform.estimate[concrete][quick_total].value = ototal; 
    } 

나는 처음 두 가지 형태가 세 번째로 함께 출력 곱해야 할. 내 문제는 어떻게 내가 입력 필드 이름을 참조하는 동안, 대괄호 (나는이 배열에서이 형식의 결과를 가져오고 있으므로 이미 다차원 배열로 결과를 처리하는 데 익숙해 져 있다고 생각할 수 있습니다)라고 생각합니다.

답변

3

mainform.estimate[concrete][quick_total].value과 같은 것을 쓰면 concretequick_total이라는 속성에 액세스하려고 시도합니다. 일하는 것이

mainform['estimate[concrete][quick_total]'].value

+0

연습에 감사 드리며 그런 언급을 인용하는 것이 좋겠지 만 작동하지 않습니다. – dmanexe

+1

시도하면 어떻게됩니까? 오류가 있습니까? 나는 그것을 시도하고 그것은 나를 위해 작동합니다. –

+0

저도 사용할 수 있습니다. 디버그를하기 위해 방화 녀를 사용하고 있습니까? 그렇지 않으면 체크 아웃해야합니다. – gregh

0

나는 그것이 대괄호라고 확신한다. 입력란에서 이름을 변경해보십시오. 일종의 계층을 표시하기 위해 이름을 명확히 구분하려면 <input type="text" name="estimate_concrete_price" />과 같은 밑줄을 사용하십시오. 자바 스크립트 mainform.estimate_concrete_price.value로 변경에서

는 .....

는 총에 있음을 지정합니다. 나는 그것이 효과가있을 것이라고 확신한다.

+0

을, 그러나 나는 입력의 이름을 변경할 수 없습니다 : 속성 및 대괄호를 포함하는 문자열을 구분하는 대신이 형식을 사용해보십시오. 브라켓으로 [콘크리트] 견적을 유지해야합니다. – dmanexe

관련 문제