2012-06-28 5 views
0

facebox에 표시된 양식 필드의 유효성을 검사해야합니다.페이스 박스에서 양식 필드의 유효성을 검사하는 방법은 무엇입니까?

문제는 내가 자바 스크립트를 사용하여 필드의 값을 얻을 수 없다는 것입니다.

예 : document.form.field_name.value는 해당 값을 반환하지 않습니다.

코드 샘플 :

<script type="text/javascript"> 
function validate() 
{ 
    if (document.form1.field.value=='') 
{ 
    alert ("Field cannot be left blank"); 
} 
} 

</script> 


<form name="form1" onsubmit="return validate()"> 
<input type="text" name="field" /> 

</form> 
+2

관련 코드를 게시 할 수 있습니까? – Don

+0

샘플 코드를 추가하기 위해 내 질문을 편집했습니다.보세요 – techish

+0

다음 링크는 유용한 정보를 포함하고 있습니다 : http://www.quirksmode.org/js/forms.html – Don

답변

0

유효성 검사 코드 양식에서 직접 값을 전달하는 것입니다 할 수있는 방법.

<form name="form" id="form" onsubmit="return validate(this.field.value)"> 
<input type="text" id="field" /> 
</form> 

또는 심지어 사용하여 양식없이 텍스트 상자를 사용할 수 있습니다

<input type="text" id="field" 
onkeydown="if (event.keyCode == 13) return validate(this.value)" /> 

업데이트 스크립트가 새 값 매개 변수에 허용 :

<script type="text/javascript"> 
function validate(val) { 
    if (val.length < 1) 
    { 
     alert ("field cannot be left blank"); 
     return false; //to stop the default action of submitting the form 
    } else { 
     alert ("Value: "+val); 
     return true; //allow to submit the page 
    } 
} 

</script> 

이 실제로 꽤입니다 쉽고 간단한 검증이지만 시스템이 제출 여부와 상관없이 반환 조치를 설정하는 것을 잊지 마십시오.

원격 HTML 주소 또는 로컬로 저장된 div에서 페이지를 가져 오는 위치가 확실하지 않습니다. 따라서 DOM에서 값을 가져 오는 솔루션이 작동하지 않는 이유가 확실하지 않습니다. 나는 일반적으로 jquery를 사용하여 facebox 윈도우의 다른 필드에서 값을 가져오고 설정하는 데 아무런 문제가 없습니다.

참고 : 스크립트를 배치 할 때주의해야합니다. 그것은 당신의 어플리케이션에 달려 있지만 때로는 페이스 박스 페이지 대신에 루트 문서에 스크립트를 배치하고자 할 수도 있습니다. 원격 페이스 박스 div를로드 할 때 범위가 변경되고 부모 필드에 액세스하려면 parent.document를 참조해야 할 수도 있기 때문입니다 스크립트는 원격 facebox div에 임베드됩니다.

0

Facebox는 표시되는 DOM의 덩어리를 복사하여 ID가 ​​중복 된 요소를 효과적으로 생성합니다. HTML 표준에서는 허용되지 않습니다. 귀하의 자바 스크립트는 이드에 의해 고유하게 식별되는 단일 요소를 찾고있는 중독자가되지만 아직 그들 중 2 개를 찾습니다.

이것은 Facebox의 거대한 버그입니다. 페이스 박스의 코드에는 ID가 없어야합니다. 페이스 상자가 공개되면 모든 바인딩을 갱신해야합니다.

관련 문제