2012-06-28 1 views
0

양식이있는 JSP가 있습니다. 이 양식의 필드 중 하나는 날짜를 허용하는 텍스트 상자입니다. 사용자 캘린더에서 날짜를 선택할 수있는 캘린더가 있습니다. 이제 사용자가 날짜를 선택하면 텍스트 상자에 "dd-mm-yyyy"형식으로 나타납니다. (예 : 11-06-2012)양식을 제출 한 후 텍스트 상자의 날짜가 변경됩니다.

양식 제출이 완료되면 즉시 변경됩니다 (예 : Mon Jun 11 00:00:00 IST 2012) 이제 더 이상 검색 조건이 추가되면 날짜가 확인되지 않으므로 오류가 발생합니다.

어떻게 이런 일이 일어나지 않도록 할 수 있습니까? 나는 당신의 validateDate() 함수를 찾을 수 없습니다

<script type="text/javascript"> 


function formDateValidate() { 
    var flag = 0; 
    var message = ""; 

    if (document.searchTemporaryPromotion.tempPromotionFromDate.value != "" 
      || document.searchTemporaryPromotion.tempPromotionToDate.value != "" 
      || document.searchTemporaryPromotion.softwarePartNumber.value != "") { 
     document.searchTemporaryPromotion.resolve.value = ""; 
    } 
    printMessageForDiv(new Array("dateLabel"), new Array("")); 

    if (document.searchTemporaryPromotion.tempPromotionFromDate.value != "") { 
     var result1 = validateDate(document.searchTemporaryPromotion.tempPromotionFromDate); 

     if (result1 != "") { 
      message = message 
        + "Check From Date: " 
        + result1 
        + " You entered: " 
        + document.searchTemporaryPromotion.tempPromotionFromDate.value 
        + ".<br>"; 
      printMessageForDiv(
        new Array("dateLabel", "fromDateLabelField"), 
        new Array(
          message, 
          "<font color='red'><b>" 
            + '*<spring:message code="label.temporaryPromotion.fromDate" />:*' 
            + "</b></font>")); 
      ++flag; 
     } 
    } 

    if (document.searchTemporaryPromotion.tempPromotionToDate.value != "") { 
     var result2 = validateDate(document.searchTemporaryPromotion.tempPromotionToDate); 

     if (result2 != "") { 
      message = message 
        + "Check To Date: " 
        + result2 
        + " You entered: " 
        + document.searchTemporaryPromotion.tempPromotionToDate.value 
        + ".<br>"; 
      printMessageForDiv(
        new Array("dateLabel", "toDateLabelField"), 
        new Array(
          message, 
          "<font color='red'><b>" 
            + '*<spring:message code="label.temporaryPromotion.toDate" />:*' 
            + "</b></font>")); 
      ++flag; 
     } 
    } 

    if (flag != 0) { 
     document.getElementById("entireViewForSearch").style.visibility = 'hidden'; 
     return false; 
    } else { 
     return true; 
    } 

} 


</script> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>temporaryPromotion</title> 
</head> 
<body> 
<span id="dateLabel" class="errordiv"></span> 
<span id="muidFieldLabel" class="errordiv"> </span> 
<form:form id="searchTemporaryPromotion" 
    name="searchTemporaryPromotion" 
    commandName="searchTemporaryPromotionCommand" onsubmit="return checkFormOnSearch(this);">  
    <form:hidden path="currentPage" /> 
    <form:hidden path="usePaging" /> 
    <form:hidden path="itemsPerPage" /> 
    <form:hidden path="action" /> 
    <div id="dialog" style="display: none"></div> 
    <p> 
     <i><font color="red">*Note: Date format should be 
       dd-MM-yyyy.</font> </i> 
    </p> 
    <spring:hasBindErrors name="searchTemporaryPromotionCommand"> 
     <p> 
      <b><form:errors cssStyle="color: red;"></form:errors> </b> 
     </p> 
    </spring:hasBindErrors> 
    <table> 
     <tr> 
      <th colspan="2" style="text-align: left; padding-left: 5px">Search 
       Criteria</th> 
     </tr> 

     <tr> 
      <td><span id="fromDateLabelField"><spring:message 
         code="label.reporting.searchTemporaryPromotion.fromDate" />:</span> <form:input 
        path="tempPromotionFromDate" id="tempPromotionFromDate" 
        cssStyle="width: 70px;text-align: center" /> <input type="button" 
       value="..." 
       onclick="displayCalendar(document.getElementById('tempPromotionFromDate'),'dd-mm-yyyy',this);"> 
       &nbsp;&nbsp; 
       <span id="toDateLabelField"> <spring:message 
         code="label.reporting.searchTemporaryPromotion.toDate" />:</span> <form:input 
        path="tempPromotionToDate" id="tempPromotionToDate" 
        cssStyle="width: 70px;text-align: center" /> <input type="button" 
       value="..." 
       onclick="displayCalendar(document.getElementById('tempPromotionToDate'),'dd-mm-yyyy',this);"> 
      </td> 
     </tr> 
     <tr> 
      <td><spring:message 
        code="label.reporting.searchTemporaryPromotion.partNumber" />: <form:input 
        path="softwarePartNumber" id="softwarePartNumber" 
        name="softwarePartNumber" cssStyle="width: 215px;" /></td> 
     </tr> 

     <tr> 
      <td><input type="submit" value="Search" onClick="javascript:onSearch();" onKeyPress="javascript:onSearch();"/> 
       <input type="button" value="Clear" onClick="javascript:onClear(this);" /></td> 
     </tr> 
    </table> 


</form:form> 

답변

1

하지만 나는 그것이 내에서 생성 된 JS 날짜 개체에 대한 입력의 원래 값을 변경 의심 :

코드는 다음과 같다 기능.

입력 값을 변경하지 않고 유효성 검사를 시도하십시오.

+0

내 문제는 해결되지 않지만 많은 의구심을 해소하는 데 도움이됩니다. 감사! – Mukul