Πρόβλημα:
Θέλω να επικυρώσει κάποια ASP.NET-πλαίσια ελέγχου χρησιμοποιώντας το plugin επικύρωση jQuery (που βρίσκεται στη διεύθυνση: http://bassistance.de/jquery-plugins/jquery-plugin-validation/ )
Τι είναι όλα σχετικά με:
Δεν είναι δυνατό να οριστεί το όνομα του χαρακτηριστικού του ASP.NET πλαίσια ελέγχου (ή μήπως είναι;). Θα αυτόματα να ρυθμιστεί, όταν ο έλεγχος καθίσταται και μπορούν να ανακτηθούν με τη χρήση
<%= emailCheckBox.UniqueID %>
Έτσι, τα δύο πλαίσια ελέγχου ως εξής:
<asp:CheckBox runat=server ID=emailAcceptCheckBox />Email<br />
<asp:CheckBox runat=server ID=phoneAcceptCheckBox />Phone<br />
θα καταστήσει στο:
<INPUT id=ctl00_MainContentPlaceHolder_emailAcceptCheckBox type=checkbox name=ctl00$MainContentPlaceHolder$emailAcceptCheckBox>
<INPUT id=ctl00_MainContentPlaceHolder_phoneAcceptCheckBox type=checkbox name=ctl00$MainContentPlaceHolder$phoneAcceptCheckBox>
Ίσως είναι ένα χάος για να αναμειχθεί ASP.NET με το πρόγραμμα επικύρωσης jquery, αλλά εγώ προτιμώ το plugin επικύρωση jQuery και δουλεύει μια χαρά με εισόδους και σε άλλους τομείς.
Το πρόβλημα είναι, ότι το πρόγραμμα επικύρωσης jQuery θέλει να ομαδοποιήσετε τα πλαίσια ελέγχου χρησιμοποιώντας το όνομα-ιδιότητα πλαίσια ελέγχου. Αυτό ιδιότητες όνομα θα πρέπει να είναι ίση για όλα τα πλαίσια ελέγχου και μια ομάδα.
Τι έκανα:
Πρόσθεσα έναν κανόνα για όλα τα πλαίσια ελέγχου με τη χρήση jQuery:
$(#[id*='AcceptCheckBox']).each(function() { $(this).rules(add, { minchecked: 1 }); });
Και πρόσθεσε τη δική μου κανόνα έλεγχο για πλαίσια ελέγχου:
jQuery.validator.addMethod(minchecked,
function(value, element, param) {
var noOfChecked = $(#[id*='AcceptCheckBox']:checked).length;
return noOfChecked >= param;
},
Error);
(Ο κανόνας αυτός θα ισχύει για πλαίσια ελέγχου των οποίων οι ταυτότητες περιλαμβάνουν AcceptCheckBox, αλλά είναι εντάξει σε αυτό το παράδειγμα).
Όταν καλώ:
var result = $(#aspnetForm).validate().form();
Επιστρέφει τέλεια αν επικύρωση μου πέτυχε ή απέτυχε!
ΑΛΛΑ:
1) Δεν πιστεύω ότι αυτό είναι ένα πολύ καθαρό και ωραίο λύση. Κάθε καλύτερη συμβουλή;
2) Όταν τρέχω επικύρωση (). Μορφή () που θα περάσουν από όλα τα πλαίσια ελέγχου μου και για κάθε ένα από αυτά ελέγχει όλα τα άλλα πλαίσια ελέγχου. Αυτό δεν είναι πραγματικά απαραίτητο. Πώς μπορώ να αποφύγω αυτό;













