2012-05-03 2 views
1

어떤 확인란을 선택했는지에 따라 양식에 숨겨진 입력 내용을 쓰고 싶습니다. 내 예를 들어 메신저에서 오류를 받고 있지만 여전히 실 거예요 필드 - 숨겨진 (편집) 통과javascript로 어떤 확인란을 선택했는지에 따라 숨겨진 양식 필드를 추가하려면 어떻게합니까?

<form action="https://www.paypal.com/cgi-bin/webscr" method="post"> 
<div id="test"></div> 
<input type="hidden" name="cmd" value="_cart"> 
<input type="hidden" name="upload" value="1"> 
<input type="hidden" name="business" value="[email protected]"> 
<input type="hidden" name="currency_code" value="US"> 
<input type="checkbox" id="chkbox1" name="camp1" value="a"> 
<input type="checkbox" id="chkbox2" name="camp2" value="b"> 
<input type="submit" value="PayPal"> 
</form> 
<script type="text/javascript"> 
var element = document.getElementById('test'); 
if(element != null && element.checked) { 

var newElement = document.createElement('input'); 
newElement.type = "hidden"; 
newElement.name = "item_name_1"; 
newElement.value = "MyItem #1"; 

document.getElementById('chkbox1').appendChild(newElement); 

var newElement2 = document.createElement('input'); 
newElement2.type = "hidden"; 
newElement2.name = "amount_1"; 
newElement2.value = "7.00"; 

document.getElementById('test').appendChild(newElement2); 
} 

는 이론적으로이 작업을해야하지만, 그것은 나를 난처한 상황에 빠진있어 아니에요. 누군가가 조언을 해줄 수 있다면 많은 도움이 될 것입니다.

+0

완전히 관련이 없지만 삽입하려는 가격에 대해 서버 측 유효성 확인이 있는지 확인하십시오. – CountMurphy

+0

스크립트를 실행할 때마다 한 번만 발생합니다.이 필드를 체크 박스로 추가/제거하려는 경우 각 체크 박스에 체크 된 이벤트에 대한 핸들러를 추가해야합니다. 그러나 아마도 가장 쉬운 방법은 거기에 필드를두고 백엔드의 확인란 선택에 따라 수행 할 작업을 결정하는 것입니다. –

+1

그 js 코드는 어디에 두는거야? 체크 박스의 onclick 이벤트에서 트리거하는 함수를 만들어야하며, 실제로 숨겨진 입력이 실제로 필요합니까? 대신 숨겨진 입력 값을 체크 상자 값에 넣을 수는 없습니까? –

답변

3

먼저 웹 페이지의 컨텍스트에서 document.write을 사용하지 마십시오. 그건 나쁜 습관입니다. 동적 순수 자바 스크립트와 요소를 추가하려는 경우, 당신은 단순히 새로운 요소를 생성합니다 :

var newElement = document.createElement('input'); 
newElement.type = "hidden"; 
newElement.name = "something"; 
newElement.value = "someValue"; 

document.getElemenytById('somecontainer').appendChild(newElement); 

두 번째 오류는 문 중 하나에 대한 document.getElementById 호출이 지정된 요소를 발견하지 못했음을 의미합니다. 당신은 결과를 확인 null이 될해야합니다

var element = document.getElementById('chkbox1'); 

if(element != null && element.checked) 
    // Do Stuff 

지금, 당신의 스크립트가 어디에의 위치를 ​​알고,이 양식이 페이지에이고, 당신이 적재 위치 앓고 수없는. HTML이로드되기 전에 스크립트가 실행되면 요소를 찾지 못할 것입니다.

+0

'document.write.test'는 유효하지 않습니다. – Matt

관련 문제