2012-06-25 3 views
2

Привет всем мой дизайн для Rad Panel bar выглядит следующим образомПолучить выбранную дату из raddatepicker в JavaScript

<telerik:RadPanelBar runat="server" ID="rdpnlPersonal" ExpandMode="FullExpandedItem" 
       Skin="Vista" EnableEmbeddedSkins="false" Width="880px"> 
       <Items> 
        <telerik:RadPanelItem Expanded="true" Text="Employee Personal Information" runat="server" 
         Selected="true"> 
         <Items> 
          <telerik:RadPanelItem Value="AccountInformation" runat="server"> 
           <ItemTemplate> 
            <label> 
             Demop 
            </label> 
            <telerik:RadDatePicker ID="RadDatePicker1" Width="200px" runat="server" MinDate="1900-01-01" 
             TabIndex="5"> 
             <Calendar ID="Calendar1" RangeMinDate="1900-01-01" runat="server"> 
             </Calendar> 
            </telerik:RadDatePicker> 
            <telerik:RadDatePicker ID="radDtHiredate" Width="200px" runat="server" MinDate="1900-01-01" 
             TabIndex="5"> 
             <Calendar ID="calHire" RangeMinDate="1900-01-01" runat="server"> 
             </Calendar> 
            </telerik:RadDatePicker> 
            <asp:CustomValidator ID="CustomValidator1" runat="server" ClientValidationFunction="validatehiredate" 
             SetFocusOnError="true" ControlToValidate="radDtHiredate" ValidationGroup="accountValidation" 
             Display="Dynamic">Can not Hire Guy less than 18 yrs</asp:CustomValidator> 
            <br /> 
            <telerik:RadButton ID="rdbtnwhAnother" Text="Add WithHolding" runat="server" ButtonType="LinkButton" 
             ValidationGroup="accountValidation" OnClick="rdbtnwhAnother_Click"> 
            </telerik:RadButton> 
           </ItemTemplate> 
          </telerik:RadPanelItem> 
         </Items> 
        </telerik:RadPanelItem> 
       </Items> 
      </telerik:RadPanelBar> 

Вот что мне нужно, если выбранная дата меньше, чем 18 years Я хотел бы показать сообщение об ошибке, как на в Custom validator. Для этого я написал следующий сценарий, но я не в состоянии достичь требуемого ..

Мой сценарий заключается в следующем

<script type="text/javascript" language="javascript"> 
    function monthDiff(d1, d2) { 
     alert("Mon"); 
     var months; 
     var date1 = new Date(d1); 
     var date2 = new Date(d2); 
     return (date1 - date2)/(1000 * 60 * 60 * 24); 
     return months; 
    } 


    //function getLeapYear 

    function difference(d1, d2) { 
     var hiredate, dob; var diff = 18 * 12; 
     hiredate = document.getElementById(d1).get_selectedDate(); 
     dob = document.getElementById(d2).get_selectedDate(); 
     var Age = monthDiff(hiredate, dob); 

     var compareVal = 365 * 18; //getCompareVal(hiredate,dob); 

     if (Age >= compareVal) { 
      return true; 
      //true 
     } else { 
      return false; //false 
     } 
    } 
    function validatehiredate(value, arg) { 
     var datePicker = $find('<%# rdpnlPersonal.FindItemByText("Employee Personal Information").FindControl("RadDatePicker1").ClientID %>'); 
     var datePicker1 = $find('<%# rdpnlPersonal.FindItemByText("Employee Personal Information").FindControl("radDtDOB").ClientID %>'); 
     arg.IsValid = (difference(datePicker, datePicker1)); 
    } 
</script> 

Может кто-нибудь помочь мне, пожалуйста

ответ

1

В конце концов я решил следующим образом путем написания сценария в radcodeblock следующим образом:

<telerik:RadCodeBlock runat="server" ID="radcb"> 
     <script type="text/javascript" language="javascript"> 
      function monthDiff(d1, d2) { 
       var months; 
       var date1 = new Date(d1); 
       var date2 = new Date(d2); 
       return (date1 - date2)/(1000 * 60 * 60 * 24); 
       return months; 
      } 

      //function getLeapYear 

      function difference(d1, d2) { 
       var diff = 18 * 12; 
       var Age = monthDiff(d1, d2); 

       var compareVal = 365 * 18; //getCompareVal(hiredate,dob); 

       if (Age >= compareVal) { 
        return true; 
        //true 
       } else { 
        return false; //false 
       } 
      } 
      function validatehiredate(value, arg) { 
       var datePicker = $find('<%= rdpnlPersonal.FindItemByValue("AccountInformation").FindControl("radDtHiredate").ClientID %>'); 
       var datePicker1 = $find('<%= rdpnlPersonal.FindItemByValue("AccountInformation").FindControl("radDtDOB").ClientID %>'); 

       var date = datePicker.get_selectedDate(); 
       var date1 = datePicker1.get_selectedDate(); 
       arg.IsValid = (difference(date, date1)); 
      } 
     </script> 
    </telerik:RadCodeBlock> 
Смежные вопросы