输出django modelform字段的值时,“未定义”值

时间:2016-05-22 11:12:33

标签: jquery ajax django

我正在记录city LocForm字段的值,但在输入值并按下提交按钮后,$('#post-text').val()将返回undefined作为其值。控制台输出是:

form submitted!
create post is workin
undefined

以下是代码的主要部分:

views.py:

def home(request):
    form = LocForm()
    context = {
        "form" : LocForm
    }
    return render(request, 'home.html', context) 

forms.py :(表格)

class LocForm(ModelForm):
    class Meta:
        model = Location
        fields = ['city']
        labels = {
            'city': ('Where do you want to live'),
        }
        widgets = {
            'city': forms.TextInput(attrs = { 
                'id': 'post-text', 
                'required': True
            }),
        }

main.js :(主要javascript文件)

$('#post-form').on('submit', function(event) {
    event.preventDefault();
    console.log("form submitted!")
    create_post();
});

function create_post() {  //AJAX call
    console.log("create post is workin");
    console.log($('#post-text').val());
    });
};

来自模板的表单的html代码:

<form id="post-form" action="/create_post/" method="post" style="text-align: center">
    {% csrf_token %}
    {{ form|crispy }}
    <input class="btn btn-lg btn-primary" type="submit" value="submit">
</form>

1 个答案:

答案 0 :(得分:-1)

您的代码需要审核的几点:

  • 使用 $(文件).ready()

您当前正在函数create_post()中使用文档。在你的情况下哪个没用。您想要的是确保您的文档已准备好捕获您的提交事件,因此应该在之前完成。

function create_post() {
    $(document).ready(function(){ ... });
};

成为:

$(document).ready(function(){
    $('#post-form').on('submit', function(event) {
          create_post();
    });
});
  • 使用您的ID&#34;文字后&#34;

根据您提供的代码,我们无法正确使用后置文字。 您应该通过键入以下内容来检查控制台中此元素的可访问性:

$('#post-text');

然后

$('#post-text').val();