The example below illustrates both frontend and backend validations.
Copy
<!DOCTYPE html><html> <head> <script type="text/javascript" src="https://unpkg.com/fuse-importer@latest" ></script> <script type="text/javascript"> const importer = new FuseImporter(); importer.getSessionToken = ... // see https://fuse-docs.flatirons.com/getting-started/sessions // frontend validations importer.onValidateRecord = async (record) => { const errors = {}; // force emails to include Gmail if (!record.email?.includes("gmail")) { errors["email"] = "Email must from gmail"; } return { errors: errors, warnings: {} }; }; importer.onSubmit = async (records) => { // submit to your backend here // return backend errors // each record passed to this function has a // records[index]._meta.id which represents the rowId. // If your backend has an error in a row, // you can pass this ID back with a custom error message for a field. return { message: "Most rows were imported. We found a few errors. Please fix them and re-submit", errors: { [records[0]._meta.id]: { email: "Email is already taken. Emails must be unique.", }, }, }; }; window.showFuseImporter = () => { importer.show(); }; </script> </head> <body> <button onclick="javascript:showFuseImporter()">Show Importer</button> </body></html>
Assistant
Responses are generated using AI and may contain mistakes.