2012-04-11 18 views
0

Ich weiß, das einfach zu sein, nehme an (nach der Plugin-Seite sowieso)jquery Validator-Plugin - keine Validierung

Aber ich versuche das Plugin ohne Erfolg zu verwenden, hier ist meine Form:

<form id="mongoForm"> 
     <label for="skip">skip:</label> <input type="text" id="skip" 
      style="width: 70px"> 
     <p /> 
     limit: <span id="limitLable" style="border: 0">1</span> 
     <div id="limit" style="width: 250px"></div> 
     <p /> 
     <label for="collection">collection: </label> <input type="text" 
      id="collection"> 
     <p /> 
     <label for="sort">sort: </label> <input type="text" id="sort"> 
     <p /> 
     <label for="type">type: </label><select id="type"> 
      <option value="find" selected="selected">find</option> 
      <option value="count">count</option> 
     </select> 
     <p /> 
     <label for="query">query: </label> 
     <textarea rows="10" cols="80" id="query"></textarea> 
     <input type="submit" value="execute" id="execute"> 
    </form> 

und mein jquery Skript:

$(document).ready(function() { 
    $.validator.addMethod("validJson", function(value, element) { 
     try { 
      var val = $.parseJSON(value); 
      return true; 
     } catch (e) { 
      return false; 
     } 

    }, "Invalid JSON string"); 
    $("#mongoForm").validate({ 
     rules : { 
      collection : { 
       required : true 
      }, 
      query : { 
       validJson : true 
      } 
     }, 
     submitHandler : function(form) { 
      queryServer(); 
     } 
    }); 

Aber wird die Validierung nicht funktioniert. Wenn ich den Eingängen eine Klasse = "erforderlich" hinzufüge, funktioniert sie für benutzerdefinierte Validierungen, aber nicht für meine benutzerdefinierte validJson-Methode. Aber das löst nicht mein Problem, da einige Felder nicht erforderlich sind Ich muss nur optionale Werte überprüfen

Irgendwelche Ideen bitte?

Antwort

1

müssen Sie Namen Attribute, wie in the general guidelines:

Der Name Attribut erklärt für Eingabeelemente erforderlich, die Validierung Plugin nicht ohne es funktioniert. Normalerweise sollten Name und ID-Attribute denselben Wert haben.

so sollte Markup

<label for="collection">collection:</label> 
<input type="text" id="collection" name="collection"> 

etc

sein