VetXL Vestby

Vi forstår at hvert dyr er unikt, og derfor tilbyr vi skreddersydde løsninger for å møte deres individuelle helsebehov. 
Uansett om det er en rutinekontroll, tannbehandling eller akuttomsorg, er VetXL dedikert til å være din partner i å sikre den beste livskvaliteten for dine kjæledyr. 

+47 456 19 232

Senterveien 6, 

1540 Vestby

Åpningstider

Mandag:

Tirsdag:

Onsdag:

Torsdag:

Fredag:

Lørdag:

Søndag:

08:00-16:00

08:00-16:00

08:00-16:00

08:00-16:00

08:00-15:00

Stengt

Stengt

VetXL Vestby

VetXL Vestby finner du strategisk plassert på Vestby Storsenter. Vårt team består av veterinærer med etterutdannelse i indremedisin, vi tilbyr også avanserte diagnostiske verktøy, inkludert ultralyd- og røntgenundersøkelser, som gir oss muligheten til å gi grundige og nøyaktige undersøkelser. 
VetXL Vestby dyreklinikk har en egen inngang fra gateplan samt en egen inngang fra PetXL Vestby dyrebutikk, noe som gir en sømløs opplevelse der du finner alt du trenger til ditt kjæledyr på ett sted.
Vi er stolte av å være den foretrukne dyreklinikken i Vestby, og fortsetter å være en pålitelig ressurs for dyreeiere i lokalsamfunnet.

Spesialiserte tjenester i denne klinikken:
  • Veterinær med etterutdannelse i indremedisin
  • Ultralyd- og røntgenundersøkelser
  • Direkteoppgjør med de fleste forsikringsselskap

 

Vi ligger rett ved PetXL Vestby dyrebutikk og PetXL hundefrisør. Du finner to innganger til vår dyreklinikk, en direkte fra gateplan og en annen via PetXL dyrebutikk.

VetXL Vestby dyreklinikk er hjemmet til erfarne veterinærer som har brakt med seg erfaring og kunnskap fra ulike smådyrklinikker. Denne solide bakgrunnen er en kilde til høy veterinærfaglig kompetanse. Vårt team er forpliktet til å opprettholde de høyeste standardene for omsorg for dine kjæledyr. Og selvfølgelig forstår at hvert dyr er unikt, og derfor tilbyr vi skreddersydde løsninger for å møte deres individuelle helsebehov.

Les mer om våre tjenester her, og andre dyreklinikker her.

Prisliste på tjenester

Tannsjekk gratis
Kastrering hannkatt ♂ 1290,-
Kastrering hunnkatt ♀2395,-
AD-røntgen 2449,-
Analkjertler, enkel tømming fra 317,-
Avliving ta kontakt
Bittsår katt ta kontakt
HD- og AD-røntgen 3250,-
HD-røntgen 2449,-
Kastrering hannkatt ♂ chip, vaksine 2437,-
Kastrering hunnkatt ♀ chip, vaksine 3603,-
Kastrering hunnkanin 3179,-
Kastrering hannkanin 2219,-
Kattungepakke: vaksine, chip, helseattest 1483,-
Kloklipp 225,-
Konsultasjon inntil 30 min ta kontakt
Konsultasjon sykt dyr ta kontakt
Kontroll (enkel) ta kontakt
Løveklipp m/sedasjon katt fra 1590,-
Ormkur – attestering i pass 211,- *medisinpris vil tilkomme.
Pass – utstedelse 720,-
Rabiesvaksine 889,-
Røntgen drektighet ta kontakt
Stingtagning/etterkontroll operasjonssår ta kontakt
Tannrens hund <20 kg (inkl. tannrøntgen) 3391,-
Tannrens hund >20 kg (inkl. tannrøntgen) 3603,-
Tannrens katt (inkl. tannrøntgen) 2968,-
Ultralyd drektighet 1218,-
Vaksine hund eller katt 889,-
Valpepakke: vaksine, chip, helseattest 1483,-
Ørebetennelse ta kontakt

VetXL og PetXL – alt du trenger på et sted

Som en ekstra bekvemmelighet, er VetXL Vestby en del av et større fellesskap ved å være tilknyttet PetXL Vestby dyrebutikk og PetXL Vestby Hundefrisør. PetXL har dyrebutikker over hele Norge, og alle våre VetXL dyreklinikker er tilknyttet en PetXL dyrebutikk. Dette skaper en helhetlig opplevelse for dyreeiere, der de kan få tilgang til alt de trenger for sine kjæledyr på samme sted. Både veterinær, kjæledyr utstyr og mat, og en hundefrisør.

Les mer om PetXL Vestby her eller besøk PetXL sin nettbutikk her.
Les mer om PetXL Vestby sin hundefrisør sine tjenester, priser og ledige timer her.

Vi tilbyr det meste av veterinære tjenester til ditt kjæledyr:

  • Poliklinikk 
  • Indremedisinske utredninger 
  • Tannbehandlinger 
  • Bløtvevskirurgi 
  • Ultralyd- og røntgenundersøkelser 
  • Eget laboratorium 
  • Behandling av eksotiske dyr 

Ansatte på denne klinikken:

Anna Emilie

Veterinær

Anna Emilie er utdannet fra NMBU i 2020 i Oslo.
Hun har jobbet både som vakt veterinær og poliklinikk veterinær.
For Anna Emilie er det viktig at alle føler seg ivaretatt og hun er opptatt av god oppfølging.

Interessefelt:
Indremedisin, ultralyd og tenner.

Heidi

Dyrepleier

Heidi ble autorisert dyrepleier fra NMBU Veterinærhøgskolen i 2021. Hun startet hos oss i august 2024. Heidi har erfaring fra klinikker i Ski, Son og Vestby. Hun har en bachelorgrad i bioteknologi og en mastergrad i kjemi. Hun har også fullført ISVPS’s Veterinary Nurse Certificate in Dentistry i 2023. Heidi er pliktoppfyllende og nøyaktig. Hun tar gjerne imot dyrepleierstudenter i praksis og holder seg oppdatert på veterinærmedisin.

Interessefelt: Tannbehandling, anestesi, TLC og farmakologi.

Lise

Assistent

Lise er elev ved vgs. og tar fagbrev i dyrefag hos oss.
Hun er vår altmulig dame og tar utfordringer på strak arm.

Rebecca

Veterinær

Rebecca ble uteksaminert ved University of Bristol i 2004. Hun har jobbet i England og Norge, både i klinikk og med dyreforsikring. Hun har bred erfaring i alle felt av smådyrsmedisin, inkludert indremedisin, kirurgi, tannpleie, akuttmedisin og har også gjort veldedig arbeid. I 2014 fullførte hun ESVPS post graduate certificate i smådyrsmedisin.

 

Interessefelt: Tannbehandlinger, indremedisin og kaniner

Siri

Klinikkleder og dyrepleier

 

Siri er vår klinikkleder og har over 20 års erfaring som dyrepleier.
Hun er utdannet autorisert dyrepleier i Kolding, Danmark.
Siri har i løpet av årene vært med å starte og drifte flere klinikker på eiersiden og har derfor en unik erfaring i hva det går ut på å drifte en dyreklinikk.
Det er viktig for henne å ha ett team som trives på jobb.

Interessefelt: Drift og ledelse, ernæring og poliklinikk.

24/7 online booking

Har kjæledyret ditt vært hos oss før?
Husk å bruke eiers navn som ble oppgitt ved første konsultasjon når du booker online.

Online booking 1/3

VetXL Ålesund VetXL Alna VetXL Sandefjord VetXL Skien VetXL Tønsberg VetXL Vestby
$(".tinput_id_patient_species_b6a434c4c4").tokenInputizeSelect({"dependOnParent": false,"minChars": 0,"sourceUrl": "/4257/onlinebooking/options_tokeninput/1/?sort=name","resultsLimit": 150,"hintText": "Skriv inn et s\u00f8keord","noResultsText": "Ingen resultater","searchingText": "S\u00f8ker..."});
VetXL Vestby
--------- * Gratis tannsjekk *Gratis tannsjekk *Gratis tannsjekk *KAMPANJE tannrens hund 20% (2719,-) *KAMPANJE tannrens katt 20% (2239,-) *KAMPANJE: Tannrens hund <20 kg. ink. tannrøntgen 2713,- *KAMPANJE: Tannrens hund >20 kg. ink. tannrøntgen 2882,- *KAMPANJE: Tannrens katt ink. tannrøntgen 2374,- 20% Tannrens kampanje Hund 20% Tannrenskampanje Katt AD-røntgen AD-røntgen AD-røntgen 2499,- AD-røntgen 2899,- Akutt Analkjertel tømming Analkjertler - enkel tømming 359,- Analkjertler, enkel tømming Analkjertler, enkel tømming - hos dyrepleier Analkjertler, enkel tømming fra 317,- Analkjertler, enkel tømming fra 366,- Årlig vaksine hund/katt Artuvetrin injeksjon Avliving Avliving Bittsår katt Bittsår katt Bittsår katt m/sedasjon Bittsår katt m/sedasjon Cytopoint/Librela/Solensia injeksjon Cytopoint/Librela/Solensia injeksjon - dyrepleier Ernæringskonsultasjon hund/katt 550 kr,- Fast medisin injeksjoner Fast medisin injeksjoner fra 350,- *medisinpris vil tilkomme. Fast medisin injeksjoner fra 350,- *medisinpris vil tilkomme. Flått injeksjon Gratis tannsjekk Gratis tannsjekk Gratis tannsjekk Gratis tannsjekk - dyrepleier Halthet HD- og AD-røntgen HD- og AD-røntgen HD- og AD-røntgen 2449,- HD- og AD-røntgen 2999,- HD- og AD-røntgen 3849,- HD-røntgen HD-røntgen HD-røntgen HD-røntgen 2499,- HD-røntgen 2899,- Helseattest 499,- Helsesjekk inkl. resept 799,- Helsesjekk inkl.resept på flåttmiddel 450 kr ID chip til hund & katt 1163,- KAMPANJE tannrens stor hund >20 kg 2543,- KAMPANJE: tannrens katt 1865,- KAMPANJE: tannrens stor hund >40 kg 2944,-- KAMPANJE:tannrens liten hund <20 kg. 2204,-,- Kastrering hannkanin 1800,- Kastrering hannkanin ♂ Kastrering hannkanin ♂ 1800,- Kastrering hannkatt Kastrering hannkatt Kastrering hannkatt 1500,- Kastrering hannkatt ♂ Kastrering hannkatt ♂ 1483,- Kastrering hannkatt ♂ 999,- Kastrering hannkatt ♂ chip og vaksine Kastrering hannkatt ♂ chip, vaksine Kastrering hannkatt ♂ chip, vaksine Kastrering hannkatt ♂ chip, vaksine 3099,- Kastrering hannkatt ♂ chip, vaksine 3603,- Kastrering hunnkanin 3100,- Kastrering hunnkanin ♀ 2499,- Kastrering hunnkatt (flankesnitt) ♀ 2799,- Kastrering hunnkatt (flankesnitt) ♀ chip og vaksine 4027,- Kastrering hunnkatt ♀ 2099,- Kastrering hunnkatt ♀ 2500,- Kastrering hunnkatt ♀ 2649,- Kastrering hunnkatt ♀ chip, vaksine 3599,- Kastrering hunnkatt ♀ chip, vaksine 3603,- Kattungepakke: vaksine, chip og helseattest Kattungepakke: vaksine, chip, helseattest Kattungepakke: vaksine, chip, helseattest (12-16 uker) Kattungepakke: vaksine, chip, helseattest 1399,- Kattungepakke: vaksine, chip, helseattest 1483,- Kattungepakke: vaksine, chip, helseattest 1599,- Kjemisk kastrering Kjemisk kastrering 12 mnd 3000,- Kjemisk kastrering 6 mnd 2250,- Kjemisk kastrering 6 mnd/12 mnd Kjemisk kastrering 6 mnd/12 mnd Kjemisk kastrering hannhund Kloklipp Kloklipp Kloklipp 215,- Kloklipp 264- Kloklipp 99,- Kloklipp enkel Kloklipp hund med sedasjon <20 kg Kloklipp hund med sedasjon <20 kg 899,- Kloklipp hund med sedasjon >20 kg Kloklipp hund med sedasjon >20 kg 949,- Kloklipp komplisert 520kr Kloklipp m/sedasjon Konsultasjon 15-30 min Konsultasjon 30 min Konsultasjon 30-45 min Konsultasjon 30-45 min sykt dyr Konsultasjon 30-45min Konsultasjon 45-60min Konsultasjon 60 minutter Konsultasjon flåttbårne sykdommer hund Konsultasjon fugl/gnager/reptil/eksotiske dyr. 749-1499,- Konsultasjon gnager/kanin Konsultasjon inntil 30 min Konsultasjon inntil 30 min Konsultasjon sykt dyr Konsultasjon sykt dyr Konsultasjon øre/øye Kontroll (enkel) Kontroll enkel Kontroll enkel Kontroll etter operasjon/tanntrekk Kontroll oppfølging Librela/Cytopoint/Solensia/Immunterapi injeksjon Librela/Osteopen/cytopoint injeksjon Livsavslutning Livsavslutning Løveklipp i sedasjon katt Løveklipp m/sedasjon katt Løveklipp m/sedasjon katt 1099,- Løveklipp m/sedasjon katt 1999kr Løveklipp m/sedasjon katt fra 1590,- Løveklipp m/sedasjon katt, 899,- Ormekur - attestering i pass 211,- *medisinpris vil tilkomme. Ormekur - attestering i pass 223,- *medisinpris vil tilkomme. Ormekur - attestering i pass 264,- *medisinpris vil tilkomme. Ormekur - attestering i pass 265,- *medisinpris vil tilkomme. Ormekur hund - attestering i pass 264,- *medisinpris vil tilkomme. Ormekur ved reise Pass - utstedelse Pass - utstedelse Pass - utstedelse Pass - utstedelse 625,- Pass - utstedelse 636,- Pass - utstedelse 794,- Post-operativ kontroll ortopedi Rabiesvaksine Rabiesvaksine Rabiesvaksine Rabiesvaksine 750,- Rabiesvaksine 786,- Rabiesvaksine 889,- Rehab: Kiropraktikk 1. konsultasjon 1199,- Rehab: Kiropraktikk påfølgende behandling 899,- Rehab: Massasje 1006,- Rehab: Tecar-behandling 689,- Rehab: Vanntredemølle 1. konsultasjon 999,- Rehab: Vanntredemølle påfølgende gang 599,- Resept Resept 149,- Resept for nye kunder Resept for nye kunder Resept for nye kunder (inkl. helsesjekk) 499,- Røntgen drektighet Røntgen drektighet Røntgen drektighet Røntgen drektighet Røntgen drektighet 749,- Røntgen drektighet 949,- Røntgenpakke: HD, AD, LTV, VA, OCD (4550,-) Sårskade Seniorundersøkelse hund 3709,- Sterilisering hunnkatt ♀ Sterilisering hunnkatt ♀ Sterilisering hunnkatt ♀ chip, vaksine Sterilisering hunnkatt ♀ chip, vaksine Stingtagning/etterkontroll operasjonssår Stingtagning/etterkontroll operasjonssår Stingtagning/etterkontroll operasjonssår Stingtagning/etterkontroll operasjonssår Stingtagning/etterkontroll operasjonssår Tannkampanje hund -20% Tannkampanje katt -20% Tannrens (inkl. tannrøntgen) hund Tannrens (inkl. tannrøntgen) hund 3399,- Tannrens (inkl. tannrøntgen) katt 2799,- Tannrens hund <20 kg (inkl. tannrøntgen) Tannrens hund <20 kg (inkl. tannrøntgen) 3391,- Tannrens hund >20 kg (inkl. tannrøntgen) Tannrens hund >20 kg (inkl. tannrøntgen) 3603,- Tannrens katt (inkl. tannrøntgen) Tannrens katt (inkl. tannrøntgen) 2968,- Tannrens katt ink tannrøntgen Tanntrekk hund Tanntrekk katt Ultralyd drektighet Ultralyd drektighet Ultralyd drektighet Ultralyd drektighet 1149,- Ultralyd drektighet 949,- Ultralyd drektighet 999,- Undersøkelse reptil/fugl/gnager Undersøkelse sykt dyr Undersøkelse sykt dyr Vaksine 2 eller flere kjæledyr Vaksine hund eller katt Vaksine hund eller katt Vaksine hund eller katt 786,- Vaksine hund eller katt 786,- pr.stk (inntil 2 kjæledyr) Vaksine hund eller katt 786,-pr stk (3 eller flere kjæledyr) Vaksine hund eller katt 889,- Vaksine hund eller katt fra 1678,- (2 kjæledyr) Vaksine hund eller katt fra 2517,- (3 eller flere kjæledyr) Vaksine hund og katt Vaksine hund/katt 750,- Valpepakke: vaksine, chip, helseattest Valpepakke: vaksine, chip, helseattest Valpepakke: vaksine, chip, helseattest (8-16uker) Valpepakke: vaksine, chip, helseattest 1399,- Valpepakke: vaksine, chip, helseattest 1483,- Valpepakke: vaksine, chip, helseattest 1599,- Ørebetennelse Ørebetennelse Ørebetennelse Ørespyling under sedasjon
$(function() { var $el = $("#id_date"); var opts = {"minDate": "2026-09-14", "inline": true, "locale": "nb", "format": "DD.MM.YYYY"}; var $modal = $el.closest('.modal'); // Host the widget in a zero-sized position:relative div on // so it escapes any clipping/transformed ancestor and so the // library's "must be inside relative parent" check passes. var ensureDtpHost = function ($container) { var $host = $container.children('.__dtp_host__').first(); if (!$host.length) { $host = $('
') .css({ position: 'relative', width: 0, height: 0 }) .appendTo($container); } return $host; }; var getDtpHostContainer = function () { return $('body'); }; if (!opts.inline && opts.widgetParent === undefined) { opts.widgetParent = ensureDtpHost(getDtpHostContainer()); } $el.datetimepicker(opts); if (opts.inline) return; // jQuery UI .position() is a SETTER (different from jQuery core's // read-only .position()). Detect by checking arity / ui presence. var hasJqUiPosition = !!($.ui && $.ui.position) || ($.fn.position && $.fn.position.length > 0); var rafId = null; var $w = null; var domObserver = null; var anchorDetached = function () { return !document.documentElement.contains($el[0]); }; var teardown = function () { var api = $el.data('DateTimePicker'); // hide() removes the body-hosted widget and fires dp.hide. if (api && typeof api.hide === 'function') { try { api.hide(); } catch (e) { /* manual cleanup below */ } } // Safety net if dp.hide never fired (anchor already gone): // remove only THIS picker's widget. The .__dtp_host__ is shared // across floating pickers, so never blanket-remove every widget // in it — that could kill a popup another open picker owns. if ($w && $w.length) { $w.remove(); $w = null; } window.removeEventListener('scroll', onScroll, true); window.removeEventListener('resize', onScroll); if ($modal.length) $modal.off('drag.dtp', onScroll); if (rafId) { window.cancelAnimationFrame(rafId); rafId = null; } if (domObserver) { domObserver.disconnect(); domObserver = null; } }; var manualPlace = function () { if (!$w || !$w.length) return; var elRect = $el[0].getBoundingClientRect(); var wh = $w.outerHeight(); var ww = $w.outerWidth(); var top, left; if ($modal.length) { var mRect = $modal[0].getBoundingClientRect(); top = elRect.bottom - mRect.top + $modal.scrollTop(); left = elRect.left - mRect.left + $modal.scrollLeft(); } else { top = elRect.bottom + window.pageYOffset; left = elRect.left + window.pageXOffset; } if (elRect.bottom + wh > window.innerHeight && elRect.top >= wh) { top -= (elRect.height + wh); } var maxLeft = ($modal.length ? $modal[0].getBoundingClientRect().right - ww - 8 : window.pageXOffset + window.innerWidth - ww - 8); if (left > maxLeft) left = maxLeft; $w.css({ top: top + 'px', left: left + 'px', bottom: 'auto', right: 'auto' }); }; var place = function () { if (!$w || !$w.length) return; if (hasJqUiPosition) { try { $w.position({ my: 'left top', at: 'left bottom+2', of: $el, collision: 'flipfit', within: window }); return; } catch (e) { /* fall through */ } } manualPlace(); }; var onScroll = function () { if (rafId) return; rafId = window.requestAnimationFrame(function () { rafId = null; if (!$w || !$w.length) return; var rect = $el[0].getBoundingClientRect(); // A detached or zero-sized anchor reports an all-zero rect; // treat it as off-screen so a stranded widget is dismissed // instead of being parked at the top-left corner (RSK-332). if (anchorDetached() || (rect.width === 0 && rect.height === 0) || rect.bottom window.innerHeight || rect.right window.innerWidth) { var api = $el.data('DateTimePicker'); if (api && typeof api.hide === 'function') api.hide(); return; } place(); }); }; $el.on('dp.show', function () { var $host = getDtpHostContainer().children('.__dtp_host__').first(); $w = $host.children('.bootstrap-datetimepicker-widget').last(); if (!$w.length) { $w = $('.bootstrap-datetimepicker-widget').last(); } if (!$w.length) return; // In a modal, match the highest z-index among this field's own // ancestors (its modal) and sit just above it. The body-host is // position:relative, so when it carries a z-index it forms a // stacking context: the host itself must be lifted too, or it // would trap the widget below a higher modal. var targetZ = 10000; if ($modal.length) { var maxZ = 0; $el.parents().each(function () { var z = parseInt($(this).css('z-index'), 10); if (!isNaN(z) && z > maxZ) maxZ = z; }); targetZ = (maxZ || 1050) + 1; } $host.css('z-index', targetZ); $w.css({ position: 'absolute', zIndex: targetZ }); // Body-hosted widget: stop clicks from reaching the modal // (BS3 close-on-outside-click) or jQuery UI draggable (which // can interpret mousedown as drag-start on the modal). $w.off('.dtpstop').on('mousedown.dtpstop click.dtpstop', function (e) { e.stopPropagation(); }); place(); window.addEventListener('scroll', onScroll, true); window.addEventListener('resize', onScroll); // jQuery UI draggable modals don't emit scroll/resize. if ($modal.length) $modal.on('drag.dtp', onScroll); // The widget lives on , so it outlives its anchor input // when an AJAX form/panel re-render detaches it. Watch for that // removal and tear the orphan down (RSK-332). if (window.MutationObserver && !domObserver) { domObserver = new window.MutationObserver(function () { if (anchorDetached()) teardown(); }); domObserver.observe(document.body, { childList: true, subtree: true }); } }); $el.on('dp.hide', function () { window.removeEventListener('scroll', onScroll, true); window.removeEventListener('resize', onScroll); if ($modal.length) $modal.off('drag.dtp', onScroll); if (rafId) { window.cancelAnimationFrame(rafId); rafId = null; } if (domObserver) { domObserver.disconnect(); domObserver = null; } // Reset the shared body-host back to its natural stacking so a // lifted z-index does not linger after this picker closes. getDtpHostContainer().children('.__dtp_host__').first() .css('z-index', ''); }); });
Viser tider:
-
  1. Hele dagen
  2. Morgen
  3. Ettermiddag
  4. Kveld
Velg tid
  • Fant ingen ledige timeavtaler. Prøv en annen dato eller et annet tidspunkt.
Vis flere tidspunkt for timeavtaler Viser alle resultater
var loadMoreBtn = function () { return $("#load-more-results"); }; var showingAllResults = function () { return $("#showing-all-results"); }; var resultsList = function () { return $("#results-list"); }; function update_more_buttons() { if (resultsList().children().length > parseInt(resultsList().data("limit"))) { loadMoreBtn().show(); showingAllResults().hide(); } else { loadMoreBtn().hide(); showingAllResults().show(); } } function show_results(offset, limit) { resultsList().children().each(function(index) { if (index >= offset && index = limit) $(this).hide(); }); } function onLoadMoreClicked () { var offset = parseInt(resultsList().data("limit")); var limit = offset + 10; resultsList().data("limit", limit); show_results(offset, limit); update_more_buttons(); } function onAjaxyError (event) { event.stopPropagation(); var response = window.JSON ? JSON.parse(event.response) : "Error"; var message = response.__all__[0].message; $.notify(message, {className: "info"}); $(this).hide(400); } loadMoreBtn().click(onLoadMoreClicked); resultsList().data("limit", 10); $(".ajaxy-wrap").on("ajaxyError", onAjaxyError); show_results(0, 10); update_more_buttons();
// var time_slider_default_values = [8, 20]; var fail = function () { $.notify("Error", "error"); }; $(function() { var search_bouncer = _.debounce(function() {update_times()}, 500); function prepopulateForm() { const urlParams = new URLSearchParams(window.location.search); const fieldsToPopulate = { 'id_department': 'department', 'id_reason': 'reason', 'id_date': 'date', }; // Utility function to normalize dates function normalizeDate(dateString) { // Attempt to parse the date with known formats const date = moment(dateString, ["YYYY-MM-DD", "DD-MM-YYYY", "MM/DD/YYYY"], true); if (!date.isValid()) { console.error(`Invalid date format: ${dateString}`); return null; } return date.format("YYYY-MM-DD"); // Return in ISO format } // Loop through fieldsToPopulate and prepopulate form Object.keys(fieldsToPopulate).forEach(fieldId => { const paramName = fieldsToPopulate[fieldId]; let paramValue = urlParams.get(paramName); if (paramValue) { // Normalize date parameter if (fieldId === 'id_date') { paramValue = normalizeDate(paramValue); if (!paramValue) { console.warn(`Skipping invalid date value for ${fieldId}`); return; // Skip if the date is invalid } } const $field = $(`#${fieldId}`); $field.val(paramValue).trigger("change"); // If a field is dynamically updated (like dropdowns), add logic to fetch its options if ($field.is("select")) { try { $(this).val(); } catch (error) { console.error("An error occurred while processing the select field:", error); } } } }); // Initialize currentUrl and shouldRedirect const currentUrl = new URL(window.location.href); let shouldRedirect = false; // Get the values from localStorage and update the URL if necessary let reasongroup = localStorage.getItem('reasongroup_id'); if (reasongroup && !urlParams.has('reasongroup')) { currentUrl.searchParams.set('reasongroup', reasongroup); shouldRedirect = true; } // Redirect if necessary if (shouldRedirect && document.referrer && new URL(document.referrer).pathname !== window.location.pathname) { window.location.href = currentUrl.toString(); } } $("#id_date").on("dp.change", function() { update_times(); }); /*eslint-disable */ // var time_slider_values_range = [8, 20]; // /*eslint-enable */ if (time_slider_default_values[0]