javascript - Uncaught TypeError: Object #<HTMLInputElement> has no method 'processCard' -


i'm trying configure coffeescript class manage stripe payments. i'm basing solution on this tutorial.

here's code:

class subscription      count = 0    page =     createform: "form#new_subscription"     createbutton: 'input#create_subscription[type=submit]'     cardnumber: '#card_number'     cardcode: '#card_code'     cardmonth: '#card_month'     cardyear: '#card_year'     stripeerror: '#stripe_error'    setupform: ->     console.log "binding submit"     $(page.createbutton).click (e) ->        $(page.createbutton).attr('disabled', true)       @processcard()       return false    processcard: ->     console.log "processing card"     card =       number: $(page.cardnumber).val()       cvc: $(page.cardcode).val()       expmonth: $(page.cardmonth).val()       expyear: $(page.cardyear).val()      stripe.card.createtoken(card, subscription.handlestriperesponse);    handlestriperesponse: (status, response) ->     if response.error       console.log "error"       $(page.stripeerror).text(response.error.message)       $(page.createbutton).attr('disabled', false)       alert ("bla")     else       alert("success: " + response.id)  jquery ->   stripe.setpublishablekey($('meta[name="stripe-key"]').attr('content'))   subs = new subscription   subs.setupform() 

the problem when click on submit button, exception:

uncaught typeerror: object #<htmlinputelement> has no method 'processcard' 

i believe caused fact in method called click event self html element triggered event. while self need javascript object.

any clue on how fix this?

thanks,

without testing actual code, looks got scope wrong.

setupform: ->   console.log "binding submit"   $(page.createbutton).click (e) =>      $(page.createbutton).attr('disabled', true)     @processcard()     return false 

by using fat arrow (=>) in $(page.createbutton).click (e) => pass outer scope this inside callback , can call @processcard() (where @ refer new subscription instance , not jquery this reference htmlinputelement).


Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -