J'ai cette classe dans mon modèle:Obtenir la valeur du champ sélectionné dans une liste déroulante
class ServiceCharge(models.Model):
name = models.CharField(max_length=30)
amount = models.PositiveIntegerField()
extends_membership = models.BooleanField(default=False)
def __unicode__(self):
return str(self.name)
Ce que je veux avoir est sous la forme pour les utilisateurs de charge les frais de service, lorsqu'une charge est choisie dans le menu déroulant, les deux valeurs pour amount
et extends_membership
sont mises à jour sur le formulaire en fonction de la charge sélectionnée.
Mon forms.py:
class vModelChoiceField(forms.ModelChoiceField):
def label_from_instance(self, obj):
return "%s" % obj.name
class PayServiceChargeForm(PaymentsForm):
service_charge = vModelChoiceField(queryset=ServiceCharge.objects.all(),
empty_label=" ")
class Meta(PaymentsForm.Meta):
exclude = ('member', 'payment_type', 'transacted_by', 'description')
Ensuite, le modèle de formulaire:
<table border="0">
<tr>
<td><strong>{% trans "Service Charge" %}</strong></td>
<td>{{ form.service_charge }}</td>
<td><strong>{% trans "Extends Membership" %}</strong></td>
<td>{{ form.extends_membership }}</td>
</tr>
<tr>
<td valign="top"><strong>{% trans "Expiry Date" %}</strong></td>
<td valign="top">{{ form.expiry_date }}</td>
<td valign="top"><strong>{% trans "Amount" %}</strong></td>
<td>{{ form.amount }}</td>
</tr>
</table>
J'ai essayé quelques-uns, mais jQuery je me suis coincé après avoir obtenu la charge sélectionnée:
<script type="text/javascript">
$(document).ready(function(){
$("#id_service_charge").change(onSelectChange);
});
function onSelectChange(){
var selected = $("#id_service_charge option:selected");
var output = "";
if(selected.val() != 0){
charge = selected.val();
.... (update values) ....
}
}
</script>
Vous recherchez une aide côté serveur ou une aide côté client? Si vous souhaitez une aide côté client, veuillez publier le code côté client. – user113716