2012-04-03 11 views
0

にcontroltovalidate属性ありません。asp.netカスタムバリデータは、私は、ページ内のasp.netカスタムバリデータと私のjQueryプラグインを使用してポストバック

<asp:TextBox ID="txtModel" runat="server" /> 
<asp:CustomValidator ID="modelValidator" Display="Static" ControlToValidate="txtModel" ClientValidationFunction="validateDetails" EnableClientScript="true" runat="server" Text="My Message" /> 

<script type="text/javascript"> 

function validateDetails(sender, args) { 
    var controltovalidate = $(sender).attr('controltovalidate'); 
    args.IsValid = $('#' + controltovalidate).data('MyPlugin').hasValidValue(); 
} 

    $(function() { 
     $('#<%=txtModel.ClientID %>').MyPlugin({ 
      validator: $('#<%=modelValidator.ClientID %>') //In order to execute validation check when values inserted 
     }); 
    }); 
</script> 

あなたが見ることができるように、ポストバックで実行をバリデータに加えていますプラグインの中でバリデーターを実行したいので、プラグインのオプションでバリデーターを渡しました。
プラグインはバリデーターを実行するたびに(validateDetails機能が完璧に動作ValidatorValidate(options.validator.get(0));を使用。
問題がポストバックである。送信者が突然持っていないので、私はvalidateDetails機能がvar controltovalidate = $(sender).attr('controltovalidate');に失敗しポストバックを作るボタンを押すと、 controltovalidate属性なぜそれが

+0

@mshsayem:いいえ、私は使用していますこのvalidateDetails関数は、modelValidatorバリデータの場合にのみ機能します。 – Naor

+0

バリデータが1つだけの場合は、なぜcontそれのようなロールですか? '$("#txtModel ")'はうまくいくはずですよね? 'args.IsValid = $('#txtModel ')。データ(' MyPlugin ')。hasValidValue(); '? – mshsayem

+0

@mshsayem:そうですが、validateDetails関数は要素IDに依存しない方が好きです。さらに、validateDetails関数は異なるjsファイルにとどまっているため、レンダリングされたtxtModel要素のクライアントIDはありません。 – Naor

答えて

0

@Naorどのように機能がポストバック上で動作することができます:。??。ボタンクリックイベントであなたのjqueryの関数を呼び出してみて、値を検証

+0

私はあなたがその質問を理解していないと信じています。 – Naor

関連する問題