2012-04-03 12 views
0

ich meine jQuery-Plugin mit asp.net benutzerdefinierten Validator in einer Seite verwenden:asp.net benutzerdefinierten Validator nicht hat nicht ControlToValidate auf Postbacks Attribut

<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> 

Wie Sie sehen können, zusätzlich ist die Ausführung bei Postbacks Validator Ich möchte den Validator innerhalb des Plugins ausführen und habe daher den Validator in den Plugin-Optionen übergeben.
Jedes Mal, wenn das Plugin den Validator (mit ValidatorValidate(options.validator.get(0)); die validateDetails Funktion funktioniert perfekt ausführt.
Das Problem in der Post ist wieder da. Wenn ich auf eine Taste drücken, die die validateDetails Funktion schlägt auf var controltovalidate = $(sender).attr('controltovalidate'); ein Postback macht, weil der Absender hat plötzlich nicht mehr . controltovalidate Attribut Warum ist das Wie kann ich die Funktion auf Post arbeitet wieder

+0

@mshsayem: Nein. ich bin mit Diese Funktion validateDetails funktioniert nur für Validator modelValidator – Naor

+0

Wenn es nur für einen Validator ist, warum erhalten Sie die cont rol so? Nur '$ (" # txtModel ") sollte funktionieren, oder? wie 'args.IsValid = $ ('# txtModel'). data ('MyPlugin'). hasValidValue();'? – mshsayem

+0

@mshsayem: Sie haben Recht, aber ich bevorzuge die validateDetails Funktion nicht von Elementen IDs abhängig sein. Außerdem bleibt die validateDetails-Funktion in einer anderen js-Datei und daher habe ich nicht die Client-ID des gerenderten txtModel-Elements. – Naor

Antwort

0

@Naor:? Versuchen Sie, Ihre jQuery-Funktion auf die Schaltfläche Click-Ereignis aufrufen und Werte bestätigen

+0

Ich glaube, du hast die Frage nicht verstanden. – Naor

Verwandte Themen