2013-02-20 4 views
0

제출이 클릭 될 때 validate() 함수를 실행하는이 코드가 바로 여기에 있습니다. 이 함수는 페이지의 일부 텍스트를 변경합니다.제출 후 새로 고침을 방지하는 방법은 무엇입니까?

<form name="myForm" onsubmit="validate(); return false;"> 
    Age: <input type="text" name="age" /> 
    Height (meters): <input type="text" name="height" /> 
    Weight (kilograms): <input type="text" name="weight" /> 
    <input type="submit" value="Submit"> 
</form> 

가 어떻게 각각 제출 한 후 다시로드에서 페이지를 방지 않습니다 : 페이지가 자동으로 제출 한 후 새로 고침 때문에 그러나 나는 효과를 볼 수없는 이유는 무엇입니까?

+5

대부분의 아마 당신이 당신의'validate' 기능에 오류가 있습니다. 콘솔을 확인하십시오. – VisioN

+0

nope. 전혀 오류가 없습니다. Chrome 개발자 콘솔을 사용할 때 코드가 완벽하게 작동합니다. –

+0

그러면 완벽하게 작동합니다 : http://jsfiddle.net/sFKch/. – VisioN

답변

0

당신은 버튼을 제거, 양식 일단 해결

<input type="button" value="Test button" onclick="validate();"> 

내부 테스트 버튼을 사용할 수 있습니다.

파이어 버그 또는 이와 동등한 코드를 사용하여 자바 스크립트 코드에 중단 점을 추가 할 수도 있습니다.

0

양식에 의해 실행 된 제출 이벤트가 자동으로 양식 조치를 시작합니다. 양식 동작이 선언되지 않으면 페이지를 새로 고칩니다. 유효성 검사 전에이 기본 동작이 발생하지 않도록해야하며 유효성 검사를 통과 한 후에 데이터를 제출해야합니다.

preventDefault()을 인증 코드에 추가하십시오.

0

return false를 추가했는지 확인하십시오. validate() 함수에서.

이렇게하면 양식을 제출할 수 없습니다.

예 :

function validate() { 
    //Validation code goes here 
    return false; 
} 
+0

'return validate()'가 사용되지 않으면 그렇지 않습니다. 이 경우에는 인라인 이벤트 핸들러에 false가 반환되기 때문에 필요하지 않습니다. – mplungjan

+0

감사합니다! 나는 폼을 : onsubmit = "return validate();"'로 만들고, validate()에'return false; '를 추가했다. 이제 작동합니다! : D –

+0

onsubmit에서도'; return false "로 작업 했어야합니다. – mplungjan