2009-04-22 11 views
1

ich habe eine childpage.aspx in Masterpage und ich versuche erforderliches Feld in childpage durch Masterpage zu validieren, der folgende Code i write in Masterpage habenjQuery Validation Mit MasterpaDE in asp.net

$(document).ready(function() 
    { 
       var container = $('#sam586'); 
       $("#aspnetForm").validate(
       { 
        errorContainer: container, 
        //errorClass: "invalid", 
        errorLabelContainer: $("#sam586"), 
        wrapper: 'li', 
        meta: "validate", 
        rules: 
        { 
         ctl00_ContentPlaceHolder1_txtUserName: 
         { 
          required:true 
         }, 
         ctl00_ContentPlaceHolder1_txtPassword: 
         { 
          required:true 
         }, 
         ctl00_ContentPlaceHolder1_txtFirstName: 
         { 
          required:true 
         }, 
         ctl00_ContentPlaceHolder1_txtLastName: 
         { 
          required:true 
         }, 
         ctl00_ContentPlaceHolder1_ddlDepartment: 
         { 
          required:true 
         }, 
         ctl00_ContentPlaceHolder1_ddlDesignation: 
         { 
          required:true 
         }, 
         ctl00_ContentPlaceHolder1_txtEmail: 
         { 
          required:true, 
          email:true 
         }, 
         ctl00_ContentPlaceHolder1_ddlStatus: 
         { 
          required:true 
         }, 
         ctl00_ContentPlaceHolder1_ddlRole: 
         { 
          required:true 
         } 
        }, 
        messages: 
        { 
         ctl00_ContentPlaceHolder1_txtUserName:"Please enter username", 
         ctl00_ContentPlaceHolder1_txtPassword:"Please enter password", 
         ctl00_ContentPlaceHolder1_txtFirstName:"please enter first name", 
         ctl00_ContentPlaceHolder1_txtLastName:"Please enter last name", 
         ctl00_ContentPlaceHolder1_ddlDepartment:"Select Department", 
         ctl00_ContentPlaceHolder1_ddlDesignation:"Select Designation", 
         ctl00_ContentPlaceHolder1_txtEmail:"Enter proper email address", 
         ctl00_ContentPlaceHolder1_ddlStatus:"Select Status", 
         ctl00_ContentPlaceHolder1_ddlRole:"Select Role" 
        } 
       }); 
      }); 

zu validieren, wenn Versuchen Sie all diese Sachen in Single aspx Seite es funktioniert perfekt.

aber das Problem ist, ich möchte Validation Erro in Div-Tag-Namen anzeigen :("Sam586"), die später in die Greypopup mit Hilfe von Jquery umgewandelt werden. so kann jeder helfen, oder jeder Vorschlag ist nennenswert.

danke im voraus.

Antwort

1

Es ist nicht klar, aber ich vermute, dass Sie Probleme haben, die Inhaltskontrolle zu finden.

Wenn das Steuerelement mit der ID "sam586" in der Inhaltsseite ist, dann wird sein ID-Name in der resultierenden Seite verstümmelt, $ ("# sam586") findet es nicht, da es id "ctl ## sein wird _..._ sam586 "Ich bin sicher, dass du das inzwischen weißt.

ich ein paar Möglichkeiten, um damit umzugehen gesehen haben:

eine einzigartige Klasse zuweisen „sam586“, so dass Sie es mit der Klasse $ finden („samsclass“)

für jede Schauen Sie einfach Tag, das mit "sam586" endet und die Attributsyntax verwendet: $ ("input [id $ = 'sam586']").

Erstellen Sie eine JavaScript-Variable im aspx der Inhaltsseite (und jeder Inhaltsseite, auf der der Masterseitencode funktionieren soll). Weisen Sie die clientID einer Variablen zu. Ihr Masterseitencode kann diese Variable jetzt verwenden.

Im content.aspx:

script type="text/javascript"> 

    var samsvar = '#<%= sam586.ClientID %>'; 

/script> 

Im MasterpaDE

$(samsvar).text();