X-Git-Url: https://git.openstreetmap.org./nominatim-ui.git/blobdiff_plain/9e8d3367fe08a708b1019ff39ac752e0105be20a..13812cb6b3f93966bffebfe118d2d7fa8623e137:/src/components/UrlSubmitForm.svelte?ds=sidebyside diff --git a/src/components/UrlSubmitForm.svelte b/src/components/UrlSubmitForm.svelte index 72864b1..2207361 100644 --- a/src/components/UrlSubmitForm.svelte +++ b/src/components/UrlSubmitForm.svelte @@ -17,8 +17,34 @@ return params; } + + // https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation + // doesn't support hidden fields, so we check those in an extra step + function validate_field(field) { + if (field.type === 'hidden') { + if (field.value.length) { + if (field.pattern && !field.value.match(field.pattern)) return false; + } + } + return field.checkValidity(); // for hidden field always true + } + + function handle_submit(event) { + let form = event.target; + + let allow_submit = true; + + Array.prototype.slice.call(form.elements).forEach(function (field) { + if (!validate_field(field)) { + alert('Invalid input in ' + field.name); + allow_submit = false; + } + }); + + if (allow_submit) refresh_page(page, serialize_form(form)); + } -