2012-05-02 2 views
0

자바 스크립트를 사용하여 양식 유효성 검사를하려고합니다. 오류가 발견되면 자바 스크립트는 서버로 양식 보내기를 중단해야합니다.자바 스크립트가 유효성 검사 후 서버에 제출을 중단하지 않습니다.

저는 다음 문장을 작성하여 javascript가 false를 리턴하는지 확인했습니다. return false;

여전히 양식이 서버로 전송됩니다.

스크립트 태그 :

<script language="javascript" src="validations.js" type="text/javascript"></script> 

내 양식 태그 :

function validateNewCustomer() { 
    var name = document.getElementById('f_name').value; 

    var okCustomer = true; 

    if (name.value == "") { 
     document.getElementById('f_name').value="kossetak"; 
     document.getElementById('errfname').innerHTML = "Error Name"; 
     okCustomer = false; 
    } else { 
     document.getElementById('errname').innerHTML = ""; 
     okCustomer = true; 
    } 

    return okCustomer; 
} 

나는 당신의 도움을 주셔서 감사합니다 : 자바 스크립트 기능

FORM id="frm" name="newCustomer" METHOD="POST" ACTION="register.php" onsubmit="return validateNewCustomer()"> 

. 감사합니다.

+3

당신이'validateNewCustomer()'자바 스크립트 기능을 게시 할 수 있습니까? – Paulpro

+0

어디에서'거짓 '을 돌려 주나요? 관련 코드를 모두 표시하십시오. –

+1

방화 광에서 오류가 있습니까? 어쩌면 자바 스크립트에 오류가 있으며 false가 반환되지 않으므로 –

답변

8

항상 name.value == ""이 false이므로 항상 함수에서 true를 반환하므로 else 절을 ​​입력하십시오. 이미이 줄에 .value

주의 사항 :

var name = document.getElementById('f_name').value 

그래서 당신이 undefined이 될 것이다 당신이 document.getElementById('f_name').value.value 액세스 name.value을 말한다.

+0

당신은 바로 선생님입니다. 감사합니다 – user1203861

+0

@ user1203861 괜찮습니다 :) – Paulpro

0

아마도 HTML 액션 매개 변수를 사용하는 대신 JavaScript 함수 내에 양식을 제출하는 것이 좋습니다.

이의 예는 다음과 같습니다

<form id="frm" name="newCustomer" onsubmit="return validateNewCustomer()">...</form> 

자바 스크립트 :

function validateNewCustomer() { 
    var name = document.getElementById('f_name').value; 

    var okCustomer = true; 

    // name.value replaced to name 
    if (name == "") { 
     document.getElementById('f_name').value="kossetak"; 
     document.getElementById('errfname').innerHTML = "Error Name"; 
     okCustomer = false; 
    } else { 
     document.getElementById('errname').innerHTML = ""; 
     // Submit the document here 
     document.forms["newCustomer"].submit(); 
     // Still supply a return value in case you need it later 
     okCustomer = true; 
    } 

    return okCustomer; 
} 
관련 문제