2013-03-25 3 views
0

나는 사용자 교육에 대한 몇 가지 필드가 포함 된 다음 html 코드를 가지고 있습니다. 나는 그가 그것을 원하는 경우에 그의 교육에 대한 자세한 내용을 추가하려면 아래에 새 테이블을 추가하기 위해 사용자 위해서는 다음과 같은 자바 스크립트 코드를 사용하고html 테이블과 javacript는이 테이블 아래에 새 테이블을 추가합니다

<table border="0" style="margin: auto; "> 

<td width="60%" > 

<fieldset style="width:530px; padding-left:5px; background-color:white " > 

    <INPUT type="button" value="Add new Table" onclick="addRow('dataTable')" /> 

    School/University/College*</br> 
    <input name="school_1" type="text" size="73"/> 
    </br></br> 
    Field of Study</br> 
    <input name="field_1" type="text" size="73"/> 
    </br></br> 
    Specialized subjects</br> 
    <input name="specialized_subject_1" type="text" size="73" /> 
    </br></br> 
    Degree</br> 
    <input name="degree_1" type="text" size="73"/> 
    </br></br> 
    Grade</br> 
    <input name="grade_1" type="text" size="73" /> 
    </br></br></br> 

     Attended from:&nbsp;<select name="month_1_1"> 
     <option value=" "> EMPTY </option> 
     <option value="January">January</option> 
     </select> 

     <select id="year_1_1" name="year_1_1"> 
     <option value=" "> EMPTY </option> 
     <option value="2009">2009</option> 
     </select>&nbsp;&nbsp;&nbsp;&nbsp; 

     Until:&nbsp;<select name="month_1_2"> 
     <option value=" "> EMPTY </option> 
     <option value="January">January</option>       
     </select> 

     <select name="year_1_2"> 
     <option value=" "> EMPTY </option> 
     <option value="2009">2009</option> 
     </select>&nbsp;&nbsp;  

    </h2></font> 
    </fieldset> 

</td> 

</table> 

. 내 자바 스크립트 코드가 작동하지 않습니다. 어떤 아이디어가 이것을 고치는 방법?

<SCRIPT language="javascript"> 
     function addRow(tableID) { 

     var table = document.getElementById(tableID); 

     var rowCount = table.rows.length; 
     var row = table.insertRow(rowCount); 

     var colCount = table.rows[0].cells.length; 

     for(var i=0; i<colCount; i++) { 

      var newcell = row.insertCell(i); 

      newcell.innerHTML = table.rows[0].cells[i].innerHTML; 
      //alert(newcell.childNodes); 
      switch(newcell.childNodes[0].type) { 
       case "text": 
         newcell.childNodes[0].value = ""; 
         break; 
       case "select-one": 
         newcell.childNodes[0].selectedIndex = 0; 
         break; 
      } 
     } 
    } 


</SCRIPT> 
+0

콘솔에 어떤 오류가 있습니까? – Saturnix

+0

필드 버튼을 추가하면 아무 것도하지 않습니다. – 33528

+0

자바 스크립트 콘솔을 의미합니다 ... 신경 쓰지 마세요, 방금 runned 로컬 및 오류를 보았다. 지금 당장 대답을 써라. – Saturnix

답변

1

이 대체 :이와

<table border="0" style="margin: auto; "> 

을 :

당신이 자바 스크립트 코드에서 오류가 무엇인지 알아낼 수없는 때마다
<table border="0" style="margin: auto;" id="dataTable"> 

, 콘솔을 확인해야합니다. 디버깅을 위해 어떤 브라우저를 사용하고 있는지 알지 못하지만, here에서 javascript 콘솔을 찾을 수 있습니다.

자바 스크립트 내 콘솔에서이 오류를 던지고 : table 의미

TypeError: 'null' is not an object (evaluating 'table.rows') 

null했다. getElementById으로 테이블을 정의 할 때 나는 id가 html 페이지에 실제로 존재하지 않는다는 것을 보았다.

테이블 수 제한에 대한 질문에 답하려면 if 문에 전체 코드를 래핑하고 전역 변수를 선언하십시오.

<SCRIPT language="javascript"> 
var counter = 0; 

if (counter > 9) 
alert("can't add more"); 
else { 

counter++; 

// paste your actual JS code here 


} 

</SCRIPT> 
+0

완벽한 ... 그런데 어떻게하면 사용자가 단지 9 개의 테이블을 추가 할 수 있도록 코드를 수정할 수 있는지 생각할 수 있습니다. 전체적으로 10 개의 테이블이 될 수 있습니다. 감사합니다 ... – 33528

+0

그냥 전역 변수 '카운터'를 추가, 당신이 테이블을 추가 할 때마다 카운터를 사용하여 + +. counter> 9 인 경우 경고 ("추가 할 수없는 테이블"); 그렇지 않으면 표를 추가하십시오. – Saturnix

+0

업데이트 된 답변보기 ... – Saturnix

관련 문제