2013-05-13 3 views
-1
<script> 
      function checkName(){ 
       var tmpName = document.getElementById("name"); 
       if(tmpName.value.length == 0){ 
        alert("Name cannot be empty"); 
        return false; 
       } 
       else 
        return true; 
      } 


      function confirmForm(formObj){ 
       var nameBool = new Boolean(); 
       var errorName = ""; 


       nameBool = checkName(); 

       if(nameBool == false) 
        errorName = "Invalid data in input name !"; 

       return window.alert("You have this error : \n " + errorName + "\n" + errorID); 
      } 

</script> 
<form name=reviewform onsubmit="return confirmForm(reviewForm)" method=POST > 
      <p>Name : <input type="text" id="name" ></p> 

      <p>ID : <input type="text" id="id" ></p> 

      <input type="submit" value="Click here!"> 
</form> 

내 문제는 내 기능을 실행할 수 없습니다 ??? 뭔가 잘못 됐어? 어떤 상급생이 내가 틀린 곳에서 나에게 가르 칠 수 있니?자바 스크립트의 주 기능에서 다른 함수를 호출하십시오.

내가 이미 editited 그 형태의 이름과 내가 모르는 일

얼마나 기능 플러스는 그들이 몇 가지 작업을 필요로하지만, 내 잘못 구현 또는 무엇

+1

어떤 기능이 실행되지 않습니까? 어떻게 작동하지 않는지 어떻게 알 수 있습니까? 어떻게 디버깅을 시도 했습니까? –

+0

주어진 코드 조각에서 두 함수를 호출하는 중 하나를 호출하지 않고 있습니다. 당신은 더 구체적 일 수 있습니까? –

+0

Firefox, Chrome, Safari의 오류 콘솔에 오류 메시지가 표시 되었습니까? – reporter

답변

1

두 기능하지 않고, 분명히 귀하의 JS 지식을 닦을 필요가 실행할 수 있습니다, 당신은 단지 그들을 호출해야합니다. 그대로 두 함수를 정의했습니다. 다른 건 없어.

다른 문제, 라인/라인 : 여기

//second line: 
var tmpName = document.getElementById("name"); 

, 당신은 너무 조심,이 요소는, 아마도 DOM이 준비가 이미 납이 함유되지되어 있는지 확인 아직 없습니다, 당신의 전체 코드를 래핑

window.onload = function() 
{ 
    //your code here, this gets executed after the page is fully loaded 
}; 

다음, don't think of JS as some sort of Java-for-browsers, it's a completely different animal : 핸들러있다. 물건 같은 :

var nameBool = new Boolean(); 
var errorName = ""; 

은 최고의 변수를 선언하지만, 아무것도 지정하지로 기록됩니다 당신이 nameBool 그냥과 같이 지정, 부울입니다 확인하려면

var nameBool, errorName; 

:

nameBool = !!checkName();//double bang 

또한 양식의 유효성을 검사하거나 일종의 제출 이벤트를 처리하는 것처럼 보입니다. 왜 addEventListener을 사용하지 않으시겠습니까? 또는 귀하가 주장하는 경우 :

document.getElementById('formId').onsubmit = function(e) 
{ 
    //get event object: 
    e = e || window.event; 
    //this references form, as does (e.target || e.srcElement), you can access the elements it contains, and check them one by one 
}; 
관련 문제