2016-05-09 4 views
0

基本的に、ユーザーの電子メールアドレスが特定の形式、つまり「@ hotmail.com」で終わる場合に表示されるdiv要素にラジオボタンリストがあります'div要素のラジオボタンリストのRequiredFieldValidatorをオン/オフにする方法

div要素がユーザーに表示されている場合、RequiredFieldValidatorはラジオボタンが選択されていることを確認する必要があります。 div要素が表示されていない場合、RequiredFieldValidatorは実行されません。

これは、これまでの私のコードです:

<div id="divPaymentMethod"> 
<h5 class="right">Preferred Payment Method </h5> 
<asp:RadioButtonList ID="rblPaymentMethod" runat="server" CssClass="rbl" RepeatDirection="Horizontal" Style="text-align:center; width:100%"> 
<asp:ListItem Text="PayPal" Value="0" /> 
<asp:ListItem Text="Invoicing" Value="1" /> 
</asp:RadioButtonList> 
<asp:RequiredFieldValidator ID="RequiredPaymentMethod" Display="Dynamic" runat="server" ControlToValidate="rblPaymentMethod" ErrorMessage="Please select a preferred payment method" ValidationGroup="CreateUser"></asp:RequiredFieldValidator> 
</div> 

はJavaScript:

$().ready(function() { 
      var element = $('[id$=UserName]'); 
      $(element).blur(function() { 
       if ($(this).val().search(/@hotmail\.com$/) != -1) { 
        $('#divPaymentMethod').hide(); 
      } 
      else { 
        $('#divPaymentMethod').show(); 
       } 
      }); 

はバリのウィッヒの別のタイプは、このチェックのために、より適しがあるでしょうか?または、コードのバックエンドで検証を実行する必要がありますか?つまり、ユーザーが情報を送信すると、検証が実行され、div要素の状態を読み込みます。

答えて

0

必要なフィールドバリデーターを無効にして有効にしてみてください。これと同じように:

$().ready(function() { 
     var element = $('[id$=UserName]'); 
     $(element).blur(function() { 
      if ($(this).val().search(/@hotmail\.com$/) != -1) { 
       $('#divPaymentMethod').hide(); 
       ValidatorEnable(document.getElementById('<%= RequiredPaymentMethod.ClientID %>'), false); 

     } 
     else { 
       $('#divPaymentMethod').show(); 
       ValidatorEnable(document.getElementById('<%= RequiredPaymentMethod.ClientID %>'), true); 
      } 
     }); 
+0

私はこれを追加しようとしましたが、div要素が、残念ながら示されていない場合、それはまだ実行され、<%= RequiredPaymentMethod.ClientID%」に名前を変更してみてください –

+0

送信ボタンをクリックしてから、私を停止しています>を有効にします。 –

+0

これはエラーをスローします:名前 'RequiredPaymentMethod'は現在のコンテキストに存在しません –

関連する問題