2012-05-03 10 views
0

私は、ラジオボタンリスト、テキストボックス、およびrequiredfieldvalidatorコントロールを保持するリピータを持っています。 RadioButtonListのは、次のことを保持します。リピータ内の条件付きRequiredFieldValidator

Meets (Value M) 
Above (Value A) 
Below (Value B) 
N/A (Value(N/A) 

テキストボックスが入力に自分の答えのためのいくつかの正当性をユーザーに許可するように設定し、かつのRequiredFieldValidatorは十分に簡単、テキストボックスが空でないことを確認しています。しかし、範囲が少し変わったので、答えが "M"でなければ、クライアントはrequiredfieldvalidatorが起動されることを望みます。

バリデーターのロードメソッドを設定しようとしましたが、バリデーターがロードされたときに、ユーザーが応答する前に解雇されているため、RBLの答えが分かりません。リピーターはModalポップアップ内で処理されるため、私はポストバックを行うことはできないと思っています。ポストバックを行うと何が起こるのか分かりません。ユーザーが「Meets」以外のものを選択した場合にのみ、バリデーターをfalseに設定するにはどうすればよいですか?

+0

は、この(多分日付)のブログ記事を提出し、検証に必要な条件、クライアント側の同様の問題に対処するように思えます:http://www.aspdotnetfaq.com/Faq/How-to-control-ASP-NET-Validator-Controls-Client-Side-validation-from-JavaScript.aspx – jbl

答えて

1

はこの試してみてください。

Javaスクリプト:

<script type="text/javascript"> 
    function UpdateValidator(radioID, validatorid) { 
     //enabling the validator only if the checkbox is checked 
     var enableValidator = $("#" + radioID).is(":checked");   
     ValidatorEnable(validatorid, enableValidator); 
    } 
</script> 

CSコード:

protected void myRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) 
    { 
     if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
     { 
      RadioButton rd = e.Item.FindControl("myRb") as RadioButton; 
      RequiredFieldValidator rfv = e.Item.FindControl("myRfv") as RequiredFieldValidator; 
      // you can just pass "this" instead of "myDiv.ClientID" and get the ID from the DOM element 
      rd.Attributes.Add("onclick", "UpdateValidator('" + rd.ClientID + "','" + rfv.ClientID + "');"); 
     } 
    } 
+0

enableMevukashValidatorとは何ですか? –

+0

それは間違いだった、私はそれを修正した –

関連する問題