2011-01-25 13 views
0

なぜこのコードが機能しないのですか?コントロールに動的にカスタムバリデーターを接続するときの問題

<script type="text/javascript"> 
    function BookDeskValidation(source, arguments) { 
     var deskCombo = $find("<%=RadComboBoxDesk.ClientID%>"); 
     var bookCombo = $find("<%=RadComboBoxBook.ClientID%>"); 
     if (bookCombo.get_text() != "" && deskCombo.get_text() == "") { 
      arguments.IsValid = false; 
     } 
     else { 
      arguments.IsValid = true; 
     } 
    } 

    function AttachValidator(combobox) { 
     var validator = document.getElementById("<%= CustomValidatorDeskBook.ClientID %>"); 
     validator.controltovalidate = combobox.get_id(); 
     validator.ClientValidationFunction = "BookDeskValidation"; 
     ValidatorHookupControl(combobox, validator); 
    } 
</script> 

<td>Book:&nbsp;</td> 
     <td> 
      <telerik:RadComboBox ID="RadComboBoxBook" runat="server" OnClientFocus="AttachValidator"> 
      </telerik:RadComboBox> 
     </td> 

<td width="70">Desk:&nbsp;</td> 
      <td width="100"> 
       <telerik:RadComboBox ID="RadComboBoxDesk" runat="server" OnClientFocus="AttachValidator"> 
       </telerik:RadComboBox> 
      </td> 
<asp:CustomValidator ID="CustomValidatorDeskBook" runat="server" 
      ErrorMessage="Error" 
      ClientValidationFunction="BookDeskValidation" ForeColor="Red">*</asp:CustomValidator> 

OnClientFocusそれは、私はバリデータが添付されるべきで制御を終了するときに何の検証が行われないため、添付されているように見えるdoesntのカスタムバリデータ火災ですが。

ありがとうございました!

答えて

2

私はこの作品を手に入れました。ここで私は何をしたのですか?誰かがそれを行うためのより良い方法を知っている場合、または私が問題を解決するために行ったことが正しくないことを私に教えてください!

だからここは私がやったことだ:

<script type="text/javascript"> 
    function BookDeskValidation(source, arguments) { 
     var deskCombo = $find("<%=RadComboBoxDesk.ClientID%>"); 
     var bookCombo = $find("<%=RadComboBoxBook.ClientID%>"); 
     if (bookCombo.get_text() != "" && deskCombo.get_text() == "") { 
      arguments.IsValid = false; 
     } 
     else { 
      arguments.IsValid = true; 
     } 
    } 

    function AttachValidator(combobox) { 
     var validator = document.getElementById("<%= CustomValidatorDeskBook.ClientID %>"); 
     validator.ControlToValidate = combobox.get_id(); 
    } 

    function EnableValidator(combobox) { 
     var validator = document.getElementById("<%= CustomValidatorDeskBook.ClientID %>"); 
     ValidatorEnable(validator, true); 
    } 
</script> 

<td>Book:&nbsp;</td> 
<td> 
     <telerik:RadComboBox ID="RadComboBoxBook" runat="server" OnClientFocus="AttachValidator" OnClientDropDownClosed="EnableValidator"> 
     </telerik:RadComboBox> 
</td> 
のでbasicly

私はValidatorHookupControl機能を取り除くと、イベントが

をOnClientDropDownClosedにValidatorEnableに置き換えてしまいました
関連する問題