Τι νέο υπάρχει με τα έντυπα το 2022; Ευφυΐα Δεδομένων PlatoBlockchain. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Τι νέο υπάρχει με τα έντυπα το 2022;

Τα προγράμματα περιήγησης προσθέτουν συνεχώς νέες δυνατότητες HTML, JavaScript και CSS. Ακολουθούν ορισμένες χρήσιμες προσθήκες για την εργασία με φόρμες που μπορεί να έχετε χάσει…

requestSubmit()

Safari 16 θα είναι το τελευταίο πρόγραμμα περιήγησης για να προσθέσετε υποστήριξη requestSubmit.

Πριν δούμε πώς .requestSubmit() λειτουργεί, ας υπενθυμίσουμε στον εαυτό μας πώς λειτουργεί μέσω προγραμματισμού η υποβολή μιας φόρμας με JavaScript κατά τη χρήση του .submit() μέθοδος. Υποβολή φόρμας με submit() δεν ενεργοποιεί ένα συμβάν υποβολής. Έτσι στον παρακάτω κώδικα υποβάλλεται η φόρμα, preventDefault() δεν έχει αποτέλεσμα και τίποτα δεν καταγράφεται στην κονσόλα:

const form = document.forms[0];
form.addEventListener('submit', function(event) {
  // code to submit the form goes here
  event.preventDefault();
  console.log('form submitted!');
});

document.querySelector('.btn').addEventListener('click', function() {
  form.submit();
})

.submit() θα αγνοήσει επίσης οποιαδήποτε επικύρωση φόρμας HTML. Λαμβάνοντας υπόψη την ακόλουθη σήμανση, η φόρμα θα υποβληθεί όταν η είσοδος είναι άδεια, παρόλο που η είσοδος έχει α required Χαρακτηριστικό:

<form>   
  <label for="name">Name</label>
  <input required name="name" id="name" type="text">
</form>

.requestSubmit() είναι ένας εναλλακτικός τρόπος υποβολής μιας φόρμας χρησιμοποιώντας JavaScript, αλλά σε αντίθεση με .submit(), η επικύρωση φόρμας HTML θα αποτρέψει την υποβολή της φόρμας. Εάν όλα τα δεδομένα που εισάγονται στη φόρμα περάσουν από επικύρωση, το submit Το συμβάν θα ενεργοποιηθεί, που σημαίνει "υποβολή φόρμας!" θα καταγραφεί στην κονσόλα στο ακόλουθο παράδειγμα:

form.addEventListener('submit', function(event) {
  event.preventDefault();
  console.log('form submitted!');
});

document.querySelector('.btn').addEventListener('click', function() {
  form.requestSubmit();
})

Θα μπορούσατε ήδη να το επιτύχετε αυτό κάνοντας κλικ μέσω προγραμματισμού στο κουμπί υποβολής της φόρμας, αλλά requestSubmit είναι ίσως μια πιο κομψή λύση.

submitter ιδιοκτησία υποβολής συμβάντος

Η SubmitEvent.submitter περιουσία που αποκτήθηκε πλήρη υποστήριξη μεταξύ προγραμμάτων περιήγησης με την κυκλοφορία του Safari 15.4. Αυτή η ιδιότητα μόνο για ανάγνωση καθορίζει το <button> or <input type="submit"> στοιχείο που προκάλεσε την υποβολή μιας φόρμας.

<form>
  <button name="foo" value="bar" type="submit">Bar</button>
  <button name="foo" value="baz" type="submit">Baz</button>
</form>

Όταν έχετε πολλά κουμπιά ή εισόδους υποβολής, το καθένα με διαφορετική τιμή, μόνο η τιμή του κουμπιού ή της εισαγωγής που κάνατε κλικ για να υποβάλετε τη φόρμα θα σταλεί στον διακομιστή και όχι και στις δύο τιμές. Αυτό δεν είναι κάτι καινούργιο. Αυτό που είναι νέο είναι ότι το πρόγραμμα ακρόασης συμβάντων για το συμβάν υποβολής έχει πλέον πρόσβαση στο event.submitter ιδιοκτησία. Μπορείτε να το χρησιμοποιήσετε για να προσθέσετε μια κλάση στο κουμπί ή την είσοδο που ενεργοποίησε την υποβολή της φόρμας, για παράδειγμα, ή για να αποκτήσετε value ή οποιοδήποτε άλλο από τα χαρακτηριστικά HTML του.

document.forms[0].addEventListener('submit', function(event) {
  event.preventDefault();
  console.log(event.submitter.value);
  console.log(event.submitter.formaction);
  event.submitter.classList.add('spinner-animation');
})

formdata συμβάν

Αυτό δεν είναι ιδιαίτερα νέο, αλλά μόνο πέτυχε υποστήριξη μεταξύ προγραμμάτων περιήγησης με την κυκλοφορία του Safari 15. Η κύρια περίπτωση χρήσης για το formdata Το συμβάν επιτρέπει στα προσαρμοσμένα στοιχεία να συμμετέχουν στις υποβολές φόρμας. Ωστόσο, εκτός των στοιχείων ιστού, μπορεί να είναι χρήσιμο.

Προσθέτεις α formdata πρόγραμμα ακρόασης συμβάντος στη φόρμα με την οποία θέλετε να αλληλεπιδράσετε:

document.querySelector('form').addEventListener('formdata', handleFormdata);

Το συμβάν ενεργοποιείται τόσο από μια κανονική υποβολή φόρμας HTML όσο και από μια εμφάνιση new FormData(). event.formData κρατά όλα τα δεδομένα που υποβάλλονται.

function handleFormdata(event) {
  for (const entry of event.formData.values()) {
    console.log(entry);
  }
}

Η λειτουργία επανάκλησης για το formdata Το πρόγραμμα ακρόασης συμβάντων εκτελείται πριν από την αποστολή των δεδομένων στον διακομιστή, δίνοντάς σας την ευκαιρία να προσθέσετε ή να τροποποιήσετε τα δεδομένα που αποστέλλονται.

function handleFormdata(event) {
  event.formData.append('name', 'John');
}

Θα μπορούσατε να έχετε τροποποιήσει ή προσαρτήσει το FormData μέσα στο πρόγραμμα χειρισμού συμβάντων υποβολής αλλά formdata σας επιτρέπει να διαχωρίσετε τη λογική. Είναι επίσης μια εναλλακτική λύση στη χρήση κρυφών εισόδων στη σήμανση της φόρμας σας σε περιπτώσεις όπου υποβάλλετε τη φόρμα "με τον παλιό τρόπο" — δηλαδή βασίζεστε στην ενσωματωμένη λειτουργικότητα του HTML για να υποβάλετε τη φόρμα αντί να την κάνετε με fetch.

showPicker() για στοιχεία εισόδου

showPicker() υπήρξε υποστηρίζονται από το Chrome 99, τον Firefox 101 και το επερχόμενο Safari 16. Για ένα στοιχείο εισόδου του οποίου το χαρακτηριστικό τύπου είναι είτε Ημερομηνία, Μήνας, Εβδομάδα, Ώρα, datetime-local, χρώμα ή αρχείο, showPicker() παρέχει έναν προγραμματικό τρόπο εμφάνισης της διεπαφής χρήστη επιλογής. Για τις εισαγωγές χρωμάτων και αρχείων, ήταν πάντα δυνατό να εμφανιστεί μέσω προγραμματισμού ο επιλογέας μέσω κλήσης .click στην είσοδο:

document.querySelector('input[type="color"]').click();

Αυτή η προσέγγιση δεν λειτουργεί στις εισαγωγές ημερομηνίας, γι' αυτό προστέθηκε αυτό το νέο API. .showPicker() θα λειτουργήσει επίσης με εισόδους χρώματος και αρχείων, αλλά δεν υπάρχει πραγματικό πλεονέκτημα να το χρησιμοποιήσετε ξανά .click().

Τι νέο υπάρχει με τα έντυπα το 2022;

Αδρανή ιδιότητα

Ήταν πάντα δυνατό να απενεργοποιήσετε πολλές εισόδους ταυτόχρονα, τυλίγοντάς τις σε ένα HTML fieldset και απενεργοποιώντας το fieldset:

Το Inert είναι ένα νέο χαρακτηριστικό HTML. Δεν είναι μόνο για φόρμες, αλλά οι φόρμες είναι σίγουρα μια βασική περίπτωση χρήσης. σε αντίθεση με το disabled Χαρακτηριστικό, inert μπορεί να εφαρμοστεί σε α form το ίδιο το στοιχείο. Τα πάντα μέσα στη φόρμα θα είναι μη εστιάσιμα και χωρίς κλικ. Όταν πρόκειται για υποστηρικτικές τεχνολογίες, inert είναι παρόμοια με τη ρύθμιση aria-hidden="true". σε αντίθεση με το disabled Χαρακτηριστικό, inert δεν εφαρμόζει κανένα στυλ από προεπιλογή, αλλά είναι εύκολο να προσθέσετε το δικό σας:

form[inert] {
  opacity: .2;
}

Θα ακολουθήσουν κι άλλα…

Το μεγάλο είναι το styling <select> στοιχεία, κάτι που οι προγραμματιστές ήθελαν εδώ και δεκαετίες. Φαίνεται ότι θα γίνει επιτέλους πραγματικότητα κάποια στιγμή σύντομα με την εισαγωγή του selectmenu.

Αλλά αυτό είναι προς το παρόν! Οι πρόσφατες ενημερώσεις φέρνουν την πλήρη υποστήριξη του προγράμματος περιήγησης σε λειτουργίες που περιμέναμε, καθιστώντας τις πρωταρχικές για χρήση στην παραγωγή.

Σφραγίδα ώρας:

Περισσότερα από Κόλπα CSS