Wpis z mikrobloga

Mirki szukam pomocy w #programowanie #csharp #javascript #mvc. Pisze prosty system rezerwacji i natrafiłem na problem. Mam formularz który działa prawidłowo, lecz jeżeli zmienię jego wartość za pomocy javascript'u to ta wartość jest wpisywana do pola ale nie jest przesyłana do modelu. Myślę że ma to coś wspólnego z wywołaniem funkcji onchange lub trigger na inpucie ale nie potrafię sobie z tym poradzić już kilka dni. Ktoś pomoże?

$('input[name="datefilter"]').on('apply.daterangepicker', function(ev, picker) {
$(this).val(picker.startDate.format('DD/MM/YYYY') + ' - ' + picker.endDate.format('DD/MM/YYYY'));

StartOfReservation.value = picker.startDate.format('YYYY-MM-DD')
EndOfReservation.value = picker.endDate.format('YYYY-MM-DD')

});
  • 11
@GrubyGrubiutki: Bez pokazania kodu online ciężko coś pomóc możesz spróbować na input wywołać ręcznie ochange

element.onchange();

albo
if ("createEvent" in document) {
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", false, true);
element.dispatchEvent(evt);
}
else
element.fireEvent("onchange");

albo

const e = new Event("change");
const element = document.querySelector('#test')
element.dispatchEvent(e);
@lobo: Dzięki za tyle przykładów. Problem nie jest z dateranggepickerem bo on wartości do inputów wstawia prawidłowo.
Problem jest taki że formularz ma wszystkie wartości wypisane a do controllera nie podaje tych które zmienił javascript
@roadie: Faktycznie! spróbowałem ustawić pole imię i poszło bez problemu. Dzięki. Data jest podawana w jako YYYY-MM-DD czyli prawidłowo ale prawdopodobnie jako string. W jaki sposób mam ją wysłać jako DateTime? DateParse() nie działa.