从下拉列表

时间:2016-04-21 19:15:46

标签: jquery ajax django

这个想法是用户从下拉列表中选择用户向他们发送电子邮件。因此,当选择新用户时,该用户的电子邮件地址需要使用以下格式与其他用户连接:'user1@mail.com','user2@mail.com','user3@mail.com'需要此格式,因为我使用Django,这是recipient list的格式。

现在我可以使用Ajax带来所选用户的电子邮件地址但不能以我需要的方式连接,这就是我所拥有的:

forms.py

class MyForm(forms.Form):
    userslist = forms.ModelChoiceField(queryset = User.objects.filter(here goes my condition to show the users), empty_label='List of users', label='Users', required=False)
    emailaddress = forms.CharField(max_length=1000, label='Send to:', required=False)
    comment = forms.CharField(widget=CKEditorUploadingWidget(), label="Comment:")

现在我的Ajax视图

views.py

class mails(TemplateView):
    def get(self, request, *args, **kwargs):
        id_user = request.GET['id']
        us = User.objects.filter(id = id_user)
        data = serializers.serialize('json', us, fields=('email'))
        return HttpResponse(data, content_type='application/json')

现在我的JQuery:

<script>
    $('#id_userlist').on('change', concatenate);
    function concatenate() {
        var id = $(this).val();
        $.ajax({
            data: { 'id': id },
            url: '/the_url_to_get_data/',
            type: 'get',
            success: function (data) {
                var mail = ""
                for (var i = 0; i < data.length; i++) {
                    mail += data[i].fields.email
                    $('#id_emailaddress').val(mail)
                }
            }
        })
    }
</script>

如何以嵌套格式连接值?

如果需要更多信息,请告诉我。

1 个答案:

答案 0 :(得分:1)

使用.join将数组元素与分隔符连接起来。并使用.mapdata的每个元素中提取电子邮件。

success: function(data) {
    var mail = data.map(function(el) {
        return el.fields.email;
    }).join(',');
    $("#id_emailaddress").val(email);
}