2011-10-07 5 views
0

데이터를 proccess.php 파일에 게시하는 양식이 있습니다. 양식에서 나는 입력을 검증하고있다. 탠덤 자전거가 사용되는지 묻는 체크 박스가 있습니다. 상자에 체크 표시가되어있는 경우에만 텍스트 입력란을 표시하고 싶습니다. 여기에 부안에 대한 내 양식 코드는 다음과 같습니다다른 확인란이 선택되어있는 경우에만 텍스트 입력 필드 표시

<tr> 
    <td> 
    <span style="font-weight:bold">Tandem:</span> 
    </td> 
    <td valign="middle"> 
    <input type="checkbox" name="tandem">&nbsp; 
    <input style="visibility:hidden" type="text" name="partnerid" id="partnerid"> 
    </td> 
</tr> 

체크 박스 "탠덤은"설정 텍스트 입력 필드 "PARTNERID"당신은 넣을 수 있도록 visibility:visible;

답변

2

는 아마도 입력이 폼에 체크되어 기본적으로 경우 를 기반으로 볼 수 여부 텍스트 입력을하게 체크 박스에 수신기를 클릭하여 체크 여부 여부 :

<input type="checkbox" name="tandem" onclick=" 
    this.form.partnerid.style.visibility = this.checked? 'visible' : 'hidden'; 
    "> 

그것은 변경 이벤트를 사용하는 것이 논리적 보일 수도 있지만 확인란을 잃을 때까지 IE에서 발생하지 않을 것이다 초점, 조금 카운터 직관적 인, 그래서 사용 cl ick.

3

이 코드를 사용하는 것이 좋습니다. 입력 요소의 disabled 속성이 true 인 경우 요소를 편집 할 수 없습니다. 사용자는 일반적으로 입력 필드를 사용해서는 안된다는 표시가 있습니다. 코드의

<input type="checkbox" name="tandem" onchange="this.form.partnerid.disabled=!this.checked" /> 

설명 : 체크 박스의 값이 변경 될 때

  • onchange=".." 트리거됩니다. 클릭하거나 키보드를 사용하여 발생할 수 있습니다. 클릭 이벤트가이 목적으로 충분하지 않습니다.
  • this.form은 양식 요소의 이벤트 수신기 컨텍스트에서
    양식을 참조합니다. 모든 명명 된 양식 요소는 this.form.element_name 또는 this.form["element_name"]을 통해 액세스 할 수 있습니다.
  • 확인란을 선택하면 (checked==true) 입력을 사용하지 않아야합니다 (disabled=false). 이는 협상을 통해 이루어집니다 : this.form.partnerid.disabled = !this.checked.
+0

대단한 답변입니다. 나는 그것이 단지 시야를 바꾸기를 원한다. 감사합니다 – SebastianOpperman

+0

IE에서 변경 이벤트는 체크 박스가 포커스를 잃을 때까지 실행되지 않으므로 마우스로 확인해도 포커스가 이동 될 때까지 입력이 보이지 않습니다. 키보드가 Safari, Firefox 및 IE와 같은 확인란을 선택하는 데 사용되는 경우 대부분의 브라우저는 클릭 이벤트를 발생시킵니다. – RobG

+0

두 입력을 사용하도록 설정 한 경우 어떻게해야합니까? – treblaluch

관련 문제