2012-10-14 5 views
1

내가 http://validator.w3.org/ 내에서 유효성을 검사 할 양식을 얻기 위해 노력하고 있어요, 나는 사용자가 날짜 선택을 단순화하기위한 것입니다 자바 스크립트이 만든 옵션이 양식을 가지고있다.페이지 확인 : 인라인 자바 스크립트

생성 자바 스크립트 인라인 :

  • 현재 연도와 월 (도착 일)
  • 미래 연도와 월 (출발일)

I가 자바 스크립트를 변환하는 생각 PHP하지만 자바 스크립트를 유지하는 방법이 있지만 동시에 유효성 검사 테스트를 통과 할 수 있습니까?

자바 스크립트 코드는 다음과 같습니다

<div class="dateBE">Fecha de llegada</div> 
<select class="fieldTRA" id="b_checkin_day" name="checkin_monthday" onchange="checkDateOrder('frm', 'b_checkin_day', 'b_checkin_month', 'b_checkout_day', 'b_checkout_month') ; tickCheckBox('b_availcheck');"> 
<option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option> 

</select> 

<select class="fieldTRA" id="b_checkin_month" name="checkin_year_month" onchange="checkDateOrder('frm', 'b_checkin_day', 'b_checkin_month', 'b_checkout_day', 'b_checkout_month') ; tickCheckBox('b_availcheck');"> 

**<script type="text/javascript"> 
/* <![CDATA[ */ 
      var monthArray=new Array("enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"); 
var today = new Date(); 
     var month= today.getMonth(); 
     var year = today.getFullYear()%100; 
     var fullYear=today.getFullYear(); 
     year=new String(year); 
     year=addzero(year); 
     var countMonth=month; 
     for(var i=0;i<12;i++,countMonth++){ 
    if(countMonth%12==0 && i>0){ 
    countMonth=0; 
    year++; 
    year=new String(year); 
    year=addzero(year); 
    fullYear++; 
    } 
    document.writeln("<option value=\""+fullYear+"-"+(countMonth+1)+"\">"+monthArray[countMonth]+" '"+year); 
    } 
/* ]]> */ 
</script> 
    </select> 
</div>** 


<div id="homeout"> 
<div class="dateBE">Fecha de salida</div> 


<select class="fieldTRA" id="b_checkout_day" name="checkout_monthday" onchange="tickCheckBox('b_availcheck');"> 
<option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option> 

</select> 
<select class="fieldTRA" id="b_checkout_month" name="checkout_year_month" onchange="tickCheckBox('b_availcheck');"> 
<script type="text/javascript"> 
/* <![CDATA[ */ 
     var monthArray=new Array("enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"); 
     var today = new Date(); 
     var month= today.getMonth(); 
     var year = today.getFullYear()%100; 
     var fullYear=today.getFullYear(); 
     year=new String(year); 
     year=addzero(year); 
     var countMonth=month; 
     for(var i=0;i<12;i++,countMonth++){ 
if(countMonth%12==0 && i>0){ 
    countMonth=0; 
    year++; 
    year=new String(year); 
    year=addzero(year); 
    fullYear++; 
} 
document.writeln("<option value=\""+fullYear+"-"+(countMonth+1)+"\">"+monthArray[countMonth]+" '"+year); 
} 

/* ]]> */ 
</script> 
    </select> 
</div> 

      </div> 

양식은 여기에서 볼 수있다 : http://www.visitar.com

+2

예, PHP로 변환해야합니다. 클라이언트 측에서 일어날 필요가있는 것이 아무것도 없습니다. – Bergi

+0

@Bergi에 동의해야합니다. PHP로 작성해야하지만, javascript를 사용하려면'document.writeline ', 그것은 단지 나쁜 형태이다. 대신에'select' 태그를 참조하고 자신의'option' 노드를 기본 JavaScript 또는 jQuery와 같은 라이브러리를 통해 삽입 할 수 있습니다. 이렇게하면 select 내에서 스크립트 태그를 가질 필요가 없습니다. BERGI는, 불행히도 나는 PHP의 강력한 충분한 이해가없는 – Matthew

+0

덕분에 (윤년 등을 고려)을 수행 할 수 있습니다. 나는 도움을 요청했고 여기와 downvoted 롤! 당신이 나에게 그것을 개조 할 수 있기를 제안 할 수있는 좋은 자료가 있는가? – Alex

답변

0

내가 PHP 모든 형태/html로 건설 논리를 이동하는 것이 좋습니다 것입니다. 서버에 PHP 코드에서이 값을 자바 스크립트에서 폼에 값을 추가하고 처리하기 때문에 당신이 여기서하는 일은 몇 가지 매우 모호한 혼합이다.

당신은 당신에게 눈에 거슬리지 JS 코드를 작성 많은 도움이 jQuery를 살펴 자바 스크립트와 함께 할 수있는 방법을 찾고 있다면. 예 :

$(function() { 
    var opt = ""; 

    // Date calculations left out 
    for(var i=0;i<12;i++,countMonth++) { 
     opt += "<option value=\""+fullYear+"-"+(countMonth+1)+"\">"+monthArray[countMonth]+" '"+year; 
    }); 

    $('#b_checkout_month').append(opt); 
} 

이 스크립트는 머리 또는 그냥 직접 문서 액세스에 의존하지만, jQuery를 선택기 $ ('#의 b_checkout_month')에 의해 선택 옵션을 참조하지 않기 때문에 body 태그를 닫기 전에 포함시킬 수 있습니다.

+0

예 그것은 당신이 출발 날짜를 얻기 위해 양식을 제출해야하기 때문에 까다로운 하나 ... 그 적합하지 PHP로 모든 형태를 가하고 있습니다. 거기에 내가 여기에 노력하고 믹스해야합니다! – Alex