2009-07-14 2 views
2

Ich verwende das JQuery Validation Plug-in und Ajax für meine Seite. Validierung funktioniert gut, wenn ich alles leer lasse. Es funktioniert auch gut, wenn ich Felder neben dem SKU-Feld (für das AJAX verwendet wird) eingeben. Ich bekomme das Problem, wenn ich etwas in den SKU-Eingang eingebe, aber nicht die anderen Eingänge. Wenn ich das tue, bekomme ich einen Fehler: "Fehler: '$ .validator.methods [...]' ist null oder kein Objekt" und dann übergibt das Formular an den Server :-PNull Fehler bei der Verwendung von JQuery Validierung mit JSON AJAX

Ich habe alles geschaut über Hilfe bei dieser Situation, aber die meisten, die ich gefunden habe, ist dies: http://forums.asp.net/t/1070825.aspx

Jede Hilfe würde geschätzt

<asp:Content ID="Content3" ContentPlaceHolderID="CustomScriptContent" runat="server"> 
<script type="text/javascript" src="/Scripts/jquery.rte.js"></script> 
<script type="text/javascript" src="/Scripts/jquery.rte.tb.js"></script> 
<script type="text/javascript">   
    $.validator.addMethod("packageSKU", function(value) { 
     $.getJSON("/JSONHelper/IsPackageSKUAvailable", "packageSKU=" + value, function(data) { 
      return data; 
     }); 
    }, 'Please enter a different SKU'); 

    $(document).ready(function() { 
     $("#LongDescription").rte({ 
      height: 450, 
      width: 960, 
      controls_rte: rte_toolbar, 
      controls_html: html_toolbar 
     }); 
     $("#packageForm").validate({   
     rules: { 
       UploadedImage: { accept: "jpg|gif|png" }, 
       SKU: { 
        remote: { 
         url: "/JSONHelper/IsPackageSKUAvailable", 
         type: "get", 
         data: { 
          packageSKU: function() { 
           return $("#SKU").val(); 
          } 
         } 
        }, 
        required: true, 
        minLength: 1, 
        maxLength: 30 
       } 
      }, 
      messages: { 
       SKU: { 
        remote: "This SKU is already taken" 
       } 
      } 
     }); 
    }); 
+0

Ich renne in genau das gleiche Problem! –

Antwort

1

Ihre Methode wahr oder falsch zurückgeben sollte aber Ihre Methode ist nicht alles zurück.

function(value) { 
     $.getJSON("/JSONHelper/IsPackageSKUAvailable", "packageSKU=" + value, function(data) { 
      return data; 
     }); 

Der Rückruf Ihrer Ajax-Anfrage gibt 'Daten' zurück, aber das geht nirgendwohin.

Verwandte Themen