個々のhtml選択されたユーザー選択をフォームフィールドに問題なく渡す例がたくさんありますが、苦労しています複数選択の場合も同様です。 JQuery.val()
関数は適切なデータ配列を作成しているようですが、サーバーのフォームフィールドに空の文字列が表示されます。私はこのアプリケーションを継承し、これにはちょっとしたノブがあります。複数のデータフィールドをJQuery経由でDjangoフォームフィールドに渡す.val()
関連するJavaScript関数は、フォームが、私は、単一のHTMLを選択は、ドロップダウン持っている場合には
<select multiple size="5" class="exemptionfield" id="Lead/lead compounds">
<option value="1(a)">
1(a)
</option>
<option value="1(b)">
1(b)
</option>
<option value="1(c)">
1(c)
</option>
<option value="1(d)">
1(d)
</option>
etc....
よう
class ASubstanceExemption(forms.Form):
buttonTitle = 'submit'
title = 'not used'
sclId = forms.IntegerField()
substance = forms.CharField()
exemption = forms.MultipleChoiceField(required=False,
choices=kExemptions)
def handle(self, *args, **kwargs):
sclId = self.cleaned_data['sclId']
substance = self.cleaned_data['substance']
exemption = self.cleaned_data['exemption']
print exemption
etc...
HTMLを選択ルックスのように見えます
$('.exemptionfield').change(function() {
var exemptionfield = $(this)
$.ajax({
url: '/form/ASubstanceExemption',
type: 'POST',
data: {
sclId: $('#sclId').val(),
substance: exemptionfield.attr('id'),
exemption: exemptionfield.val()
}
})
})
です単一の選択form.ChoiceField
、選択された値(タイプのexemptionfield
)は私の形式で免除変数に渡されます。そこには決して問題はなかった。 form.MultipleChoiceField
に切り替えて、たとえばexemptionfield.val()[0]
のように渡す単一の変数を選択すると、これも正常に動作します。それは(例)[u'1(b)']
の形式で来るでしょう。しかし、私が[0]
を削除し、exemptionfield.val()
しか使用しないと、私は自分のフォームに空の配列しか受け取れないようです。結果的に私の印刷作業は[]
しか表示されません。しかし、アラート機能を使用してJavaScriptによって送信された値を見ると、1(b)
、1(c)
、1(d)
というメッセージが送信されてきたことがわかります。
私はここで間違っていますか?おかげさまで
あなたはどのバージョンのJQueryを使用していますか? –