2012-04-06 1 views
-1

두 필드의 유효성을 검사하려고합니다. 하나는 열린 시간이고 다른 하나는 가까운 시간입니다. 내 유효성 검사는 종료 시간이 "00"이외의 값을 갖고 있는지 확인해야합니다. 열린 시간은 "00"보다 큰 값을 가져야합니다.coldfusion에서 javascript로 양식 유효성 검사

내 질문은 무엇을 잘못하고있는 것입니까? 내 기능에 오류가 있어야한다는 것을 알고 있습니다.

내가 지금까지 쓴 검증입니다 :

<script type="text/javascript"> 

function hoursFunction(formObject, formField, fieldValue) 
{ 
    var closeHours = document.getElementById('closeHours#CountVar#'); 
    var openHours = document.getElementById('openHours#CountVar#'); 

    if(closeHours != "00" && openHours == "00") 
    { 
    sfm_show_error_msg('Enter a valid opening time'); 
    } 
} 

그리고 내 양식의 샘플 당신은 당신의 요소의 값을 잡기 위해 필요

<form id="hoursForm" action="physician_businessHours.cfm?docID=<cfoutput>#docid#</cfoutput>" method="post" onsubmit="hoursFunction();"> 
      <input type="hidden" name="postitnow" value="yes"> 


        <table border="1"> 

        <tr> 
         <th>Day</th><th>Open Time</th><th>Close Time</th> 
        </tr> 


        <cfloop from="1" to="7" index="CountVar"> 

        <cfset dayFound= 0> 
        <tr> 
         <td><cfif CountVar eq 1>Mon<cfelseif CountVar eq 2>Tues<cfelseif CountVar eq 3>Wednes<cfelseif CountVar eq 4>Thurs<cfelseif CountVar eq 5>Fri<cfelseif CountVar eq 6>Satur<cfelseif CountVar eq 7>Sun</cfif>day</td> 

         <cfoutput> 

         <td> 
         <select id="openHours#CountVar#" name="openHours#CountVar#"> 
         <cfloop query="doctorHours"> 
         <cfloop from="00" to="23" index="OpenHours"> 
         <option value="#openHours#"<cfif TimeFormat(doctorHours.openTime,'HH') EQ OpenHours AND CountVar EQ doctorHours.day > selected="selected"</cfif>>#OpenHours#</option> 
         </cfloop> 
         </cfloop> 
         </select> 
         </td> 

    <td>  
         <select id="closeHours#CountVar#" name="closeHours#CountVar#"> 
         <cfloop query="doctorHours"> 
         <cfloop from="00" to="23" index="closeHours"> 
         <option value="#closeHours#" 
         <cfif TimeFormat(doctorHours.closeTime,'HH') EQ closeHours AND CountVar EQ doctorHours.day > selected="selected"</cfif>>#closeHours#</option> 
         </cfloop> 
         </cfloop> 
         </select> 
         </td> 
         </tr> 

     <input type="hidden" name="Validate" onValidate="hoursFunction" message="You must select an opening hour"> 

    <input type="submit" value="Update" id="Submit"> 
        ' 
+1

무엇이 질문입니까? – Tuan

답변

0

하고 그것을 잘 지금까지 작동합니다

function hoursFunction() 
{ 

    var i = 0; 
    var openHour; 
    var closeHour; 

    for(i=1;i<8;i++) 
    { 
    openHour = document.getElementById("openHours" + i).value; 
    closeHour= document.getElementById("closeHours" + i).value; 

    if(openHour > closeHour) 
    { 
     document.getElementById('error').innerHTML= "Error at " + i; 
     return false; 
    } 
    document.getElementById('error').innerHTML= "No Error occured"; 
    return true; 
    } 
} 

내 문제는 지금은 양식을 제출할 때이 양식을 것 같다이다 새로 고침을하고 내 모든 데이터를 삭제하는 중입니다 ... 그 점에 대한 의견이 있으십니까?

1

:

var closeHours = document.getElementById('closeHours#CountVar#').value; 
    var openHours = document.getElementById('openHours#CountVar#').value; 
+0

Nop, 작동하지 않습니다. 나는 내 모든 루프를 사용할 수 있도록 함수 내에서 for 루프를 필요로하지만 어떤 이유로 루프를 사용할 수 없다. – Geo

1

나는 본다.

for (var i = 0; i < 7; i++) { 
    var closeHours = document.getElementById('closeHours' + i).value; 
    var openHours = document.getElementById('openHours' + i).value; 

    if (closeHours != "00" && openHours == "00") { 
     sfm_show_error_msg('Enter a valid opening time'); 
    } 
} 
+0

실제로 작동 할 수있다. 아픈 곧 다시 당신에게. 감사합니다 – Geo

1

CountVar는 0이 아닌 1에서 시작하므로 for 루프가 동일해야합니다. 또한 폼 제출을 방지하기 위해 폼이 유효성을 검사하지 않으면 hoursFunction()이 false를 반환해야합니다. 또한 hoursFunction()에는 3 개의 인수가 필요하지만 아무 것도 전달하지 않습니다.이 경우 인수는 필요하지 않으므로 함수 정의에서 해당 인수를 제거하십시오. 아래의 기능을보십시오 : 이것은 내가 쓴 코드가

function hoursFunction() { 
    for (var i = 1; i <= 7; i++) { 
    var closeHours = document.getElementById('closeHours' + i).value; 
    var openHours = document.getElementById('openHours' + i).value; 
    if (closeHours != "00" && openHours == "00") { 
     sfm_show_error_msg('Enter a valid opening time'); 
     return false; 
    } 
    return true; 
    } 
} 
+0

코드 및 시간 주셔서 감사하지만 솔루션이 작동하지 않습니다. 코드를 작성한 방법에 대한 내 대답을 확인하십시오. 그리고 아마도 다른 문제가 발생했을 때 도와 줄 수 있습니다. – Geo