2012-04-05 5 views
3

Ich möchte meine Selectboxen validieren, aber weil ich jQuery UI zum Stylen meiner Selectboxen verwende, funktioniert es nicht.jQuery UI Wählen Sie in Kombination mit dem Validierungs-Plugin

JQuery UI ist die reale selectbox auf dem Display eingestellt: keine damit ist, warum es nicht sehen arbeiten: html

Aber wie kann ich es mit der jQuery UI selectbox Plugin funktioniert?

Ich hoffe, jemand hat eine funktionierende Lösung. :)

+0

Können Sie eine [SSCCE] (http: // sscce .org /)? Die attach-Methode des Plugins blendet die ursprüngliche Auswahlbox aus und ersetzt sie (mit display: none) durch eine benutzerdefinierte. Sie müssen stattdessen mit Selektoren arbeiten, die vom [plugin] (http://www.bulgaria-web-developers.com/projects/javascript/selectbox/) bereitgestellt werden. – lzdt

+0

Hallo Izdt, ich bin nicht wirklich ein JS-Programmierer, also verstehe ich nicht wirklich, was Sie sagen. Ich hoffe ihr könnt mir helfen? Ich habe ein JSFiddle mit dem Code gemacht, den ich jetzt habe: http://jsfiddle.net/jB5mE/ – Maanstraat

Antwort

8

Dies ist nur aufgrund der Tatsache, dass selectMenu verbirgt die select. Standardmäßig validiert validieren nicht verdeckte Elemente. Sie können dies, indem die zu []ignore Option Einstellung ändern:

$(".valid").validate({ 
    meta: "validate", 
    ignore: [], 
    groups: { 
     checks: checkbox_names 
    }, 
    errorPlacement: function(error, element) { 
     if (element.attr("type") == "checkbox") 
      error.insertAfter(element.parent().siblings().last()); 
     else if (element.is("select")) { 
      error.insertAfter(element.next("a.ui-selectmenu")) 
     } 
     else error.insertAfter(element); 
    } 
}); 

Wie Sie bemerkt haben, ändert sich die selectMenu nicht die Eingabe erneut zu validieren. Sie können manuell durch Antippen in die change Ereignis auf dem selectMenu und Wieder Validierung des Elements um dieses zu erhalten:

// SELECTBOXES 
$(function() { 
    $('.dataTables_length input, select').not("select.multiple").selectmenu({ 
     style: 'dropdown', 
     transferClasses: true, 
     width: null, 
     change: function() { 
      $(".valid").validate().element(this); 
     } 
    }); 
}); 

Beispiel:http://jsfiddle.net/8YvSN/

+0

Sie sind der Mann, thnx! Aber wenn ein Benutzer eine Option auswählt, verschwindet die Fehlermeldung nicht, gibt es eine Möglichkeit, dass es getan werden kann? – Maanstraat

+0

@Maanstraat: Ja, überprüfen Sie die aktualisierte Antwort –

+0

Vielen Dank Andrew für Ihre Zeit. – Maanstraat

Verwandte Themen