2013-04-07 9 views
5

Mam formularz, który jest związany z modelem: formularza użytkownika, który jest reprezentowany przez Backbone.View.extend który posiada:Backbone html wybierz wartość

model:user 

wewnątrz widzenia:

events: { 
    'click #payment' : 'updatePayment' 
} 

gdzie płatność jest html wybrać z:

<div class="span2" id="payment"> 
    <select class="span12"> 
     <option value="paypal">paypal</option> 
     <option value="check">check</option> 
    </select> 
</div> 

updatePayment: function() { 
    var payment = this.$("#payment"); 
    console.log(payment); 
} 

Niestety zapłata nie ma żadnej wartości. Czy ktoś może pomóc? Dzięki!

+2

Który element DOM jest Państwa zdanie użyciu? –

+0

Dlaczego używać 'this. $()' Zamiast tylko '$()'? – mhu

+0

@mhu: Nazwałbym używając 'this. $()' Zamiast '$()' standardową praktykę z Backbone, użycie samego '$()' jest trochę czerwoną flagą. –

Odpowiedz

7

To jest trochę trudno powiedzieć ... ale wydaje się, jak chcesz to:

events: { 
    'change .span12' : 'updatePayment' // listen for change of <select> element. 
}, 

updatePayment: function(event) { 
    var payment = event.target.value; 
    console.log(payment); // print 'paypal' or 'check'. 
}