快速提问......
我有一个输入框,在键输入时,将值添加到无序列表中。我如何将这个无序列表传递给jquery帖子?我正在使用form.serialize,所以我不必定义每个变量用于发布。
示例,假设我输入了3个水果,它们会动态添加到表单内的无序列表中。
水果:[此处输入文字]
- 苹果
- 香蕉
- 梨
我正在考虑创建一个隐藏的文本字段,每次用户按下输入时都会填充新值。
还有其他想法吗?
答案 0 :(得分:16)
<ul>
<li>Apple<input type='hidden' name='fruits[]' value='Apple'/></li>
<li>Pear<input type='hidden' name='fruits[]' value='Pear'/></li>
<li>Banana<input type='hidden' name='fruits[]' value='Banana'/></li>
</ul>
提交后,您将在名为$_POST
的{{1}}中获得一个包含这些值的数组。
答案 1 :(得分:2)
类似的东西(ul内容的动态构造):
<html>
<head>
<title>S.O. 3287336</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#add').click(function() {
var li = $('<li></li>').text($('#edit').val());
$('#ul').append(li);
});
$('#addForm').submit(function() {
var ul = "";
$('#ul li').each(function() {
ul += $(this).html() + ";"
});
alert("About to submit: " + ul);
return false; // don't submit
});
});
</script>
</head>
<body>
<ul id="ul">
</ul>
<form id="addForm">
<input type="text" name="edit" id="edit" value=""/>
<input type="button" id="add" value="Add"/>
<input type="submit" id="submit-btn" value="End"/>
</form>
</body>
</html>
答案 2 :(得分:1)
当你动态地向你的UL添加东西时,你可以添加像
这样的数组名称的隐藏输入<input type='hidden' name='ul[1]' value='banana'/>
<input type='hidden' name='ul[2]' value='apple'/>
<input type='hidden' name='ul[3]' value='pear'/>
答案 3 :(得分:0)
类似的东西在Python Flask中也可以使用,但是您必须使用request.form.getlist(arg)而不是仅仅“ get”。
在fruits.html中:
<form action='/test' method="post">
<ul>
<li>Apple<input type='hidden' name='fruits' value='Apple'/></li>
<li>Pear<input type='hidden' name='fruits' value='Pear'/></li>
<li>Banana<input type='hidden' name='fruits' value='Banana'/></li>
</ul>
<input type="submit">
</form>
在app.py中:
@app.route('/fruits', methods=['GET', 'POST'])
def get_fruits():
if request.method == 'POST':
fruits = request.form.getlist("fruits")
print fruits
return render_template(fruits.html)
这将打印出来:
['Apple', 'Pear', 'Banana']