I'm trying to add an event like 'keyup: validationSuccess' to all input fields on the checkout. I have overwritten input.html and added the Js to Shipping.js but now when i go to checkout/cart.html I get an error because of course the validationSuccess function doesn't exist on the Cart JS. So I need the function on all inputs on the Checkout but not on the Cart so overwriting input doesn't work. How do I do this the right way?


Instead of adding new events you can subscribe to each input value as all those are knockoutjs observable elements

| improve this answer | |
  • Do you maybe have an example of how I would to something like that? – Sanne May 30 '18 at 9:37
  • yes @Sanne this is documented in knockoutjs.com/documentation/observables.html – Anton S May 30 '18 at 9:43
  • Ah thanks, hmm in the docs they do something like 'myViewModel.personName()' how would i do something like that in Magento_Checkout/js/view/shipping.js? (i made a mixin for it) I'm unsure what how i could access the view model for that js. – Sanne May 30 '18 at 10:03
  • I did see that you can access this.source.shippingAddress.firstname but i'm not sure if that is exactly what you mean? – Sanne May 30 '18 at 10:17
  • you can subscribe to this input and get to know whenever value changes – Anton S Jun 6 '18 at 8:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.