我正在开发一个django应用程序。 在应用程序中,我在一个窗体中有一个下拉按钮。 还有一个隐藏的输入字段将保存所选下拉项的值。 (我使用jQuery
实现了这一点)。 我想访问views.py文件中隐藏字段的值。
现在,当表单提交时,我只得到一个None值返回。 我不确定我做错了什么。 到目前为止这是我的代码
HTML模板
<form method="post" action="{% url 'test_app:get_data' %}">
{% csrf_token %}
<div class="dropdown">
<button class="btn btn-primary btn-lg btn-block dropdown-toggle fruit-btn" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Fruit
</button>
<input type="hidden" name="fruit-name" id="fruit-name" value="" disabled>
<div class="dropdown-menu">
<ul class="list-group" role="menu" aria-labelledby="dropdownMenu">
<li class='list-group-item'><a class="btn btn-lg dropdown-item" href="#">Apple</a></li>
<li class='list-group-item'><a class="btn btn-lg dropdown-item" href="#">Banana</a></li>
<li class='list-group-item'><a class="btn btn-lg dropdown-item" href="#">Mango</a></li>
</ul>
</div>
</div>
...
<button type="submit" class="btn btn-primary btn-block btn-lg mt-5">Submit</button>
</form>
views.py
def test_data(request):
if request.method == 'POST':
fruit = request.POST.get('fruit-name')
print(fruit)
return redirect("test_app:root")
return render(request, 'test_app/root.html')
获取隐藏输入字段中按钮值的jquery代码
$(document).ready(function() {
$('.dropdown-item').click(function() {
$('.fruit-btn').text($(this).text());
$('.fruit-btn').val($(this).text());
$('#fruit-name').val($(this).text());
console.log($('#fruit-name').val())
})
})
这是当我单击特定水果时jqueryconsole.log
的输出
Mango
这是当我提交表单时,来自views.py
的pythonprint(fruit)
的输出
None
我不确定我做错了什么。 有什么建议吗?
删除隐藏字段上的禁用属性。 之后,您应该能够得到您的视图中的价值。