Προσθήκη προσαρμοσμένου JavaScript σε φόρμα
Οι καρτέλες βήματος βασικής φόρμας και φόρμας πολλών βημάτων περιέχουν ένα πεδίο με το όνομα Προσαρμοσμένο JavaScript το οποίο μπορεί να χρησιμοποιηθεί για την αποθήκευση του κώδικα JavaScript για να μπορείτε να επεκτείνετε ή να τροποποιήσετε την εμφάνιση της φόρμας ή τη συνάρτηση.
Το προσαρμοσμένο μπλοκ της JavaScript θα προστεθεί στο κάτω μέρος της σελίδας, ακριβώς πριν το στοιχείο κλεισίματος ετικέτας φόρμας.
Πεδία φόρμας
Το αναγνωριστικό εισόδου HTML ενός πεδίου πίνακα ορίζεται στο λογικό όνομα του χαρακτηριστικού. Επιλογή ενός πεδίου, ρύθμιση τιμών ή άλλος χειρισμός από την πλευρά του προγράμματος-πελάτη εύκολα με το jQuery.
$(document).ready(function() {
$("#address1_stateorprovince").val("Saskatchewan");
});
Σημαντικό
Η προσθήκη μιας στήλης επιλογής σε φόρμα που καθορίζεται από μοντέλο για χρήση σε ένα βήμα φόρμας πολλαπλών βημάτων ή μια βασική φόρμα θα εμφανιστεί στην ιστοσελίδα ως στοιχείο ελέγχου αναπτυσσόμενου διακομιστή. Η χρήση προσαρμοσμένης JavaScript για την προσθήκη πρόσθετων τιμών στο στοιχείο ελέγχου θα έχει ως αποτέλεσμα το μήνυμα "Μη έγκυρο όρισμα καταχώρησης ή επιστροφής κλήσης" στην υποβολή σελίδας.
Επιπλέον επικύρωση πεδίου από την πλευρά του προγράμματος-πελάτη
Μερικές φορές ίσως χρειαστεί να προσαρμόσετε την επικύρωση των πεδίων της φόρμας. Το παράδειγμα αναγκάζει το χρήστη να καθορίσει ένα μήνυμα ηλεκτρονικού ταχυδρομείου, μόνο αν το άλλο πεδίο για την προτιμώμενη μέθοδο επικοινωνίας έχει οριστεί σε Ηλεκτρονικό ταχυδρομείο.
Σημείωμα
Δεν υποστηρίζεται η επικύρωση πεδίου από την πλευρά του προγράμματος-πελάτη σε ένα υποπλέγμα.
if (window.jQuery) {
(function ($) {
$(document).ready(function () {
if (typeof (Page_Validators) == 'undefined') return;
// Create new validator
var newValidator = document.createElement('span');
newValidator.style.display = "none";
newValidator.id = "emailaddress1Validator";
newValidator.controltovalidate = "emailaddress1";
newValidator.errormessage = "<a href='#emailaddress1_label' referencecontrolid='emailaddress1 ' onclick='javascript:scrollToAndFocus(\"emailaddress1 _label\",\" emailaddress1 \");return false;'>Email is a required field.</a>";
newValidator.validationGroup = ""; // Set this if you have set ValidationGroup on the form
newValidator.initialvalue = "";
newValidator.evaluationfunction = function () {
var contactMethod = $("#preferredcontactmethodcode").val();
if (contactMethod != 2) return true; // check if contact method is not 'Email'.
// only require email address if preferred contact method is email.
var value = $("#emailaddress1").val();
if (value == null || value == "") {
return false;
} else {
return true;
}
};
// Add the new validator to the page validators array:
Page_Validators.push(newValidator);
});
}(window.jQuery));
}
Γενική επικύρωση
Όταν κάνετε κλικ στο κουμπί Επόμενο/Υποβολή εκτελείται μια συνάρτηση που ονομάζεται entityFormClientValidate. Μπορείτε να επεκτείνετε αυτή τη μέθοδο για να προσθέσετε προσαρμοσμένη λογική επικύρωσης.
if (window.jQuery) {
(function ($) {
if (typeof (entityFormClientValidate) != 'undefined') {
var originalValidationFunction = entityFormClientValidate;
if (originalValidationFunction && typeof (originalValidationFunction) == "function") {
entityFormClientValidate = function() {
originalValidationFunction.apply(this, arguments);
// do your custom validation here
// return false; // to prevent the form submit you need to return false
// end custom validation.
return true;
};
}
}
}(window.jQuery));
}