我正在记录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>
答案 0 :(得分:-1)
您的代码需要审核的几点:
您当前正在函数create_post()中使用文档。在你的情况下哪个没用。您想要的是确保您的文档已准备好捕获您的提交事件,因此应该在之前完成。
function create_post() {
$(document).ready(function(){ ... });
};
成为:
$(document).ready(function(){
$('#post-form').on('submit', function(event) {
create_post();
});
});
根据您提供的代码,我们无法正确使用后置文字。 您应该通过键入以下内容来检查控制台中此元素的可访问性:
$('#post-text');
然后
$('#post-text').val();