如何在同一视图中同时传递JavaScript值和验证表单?因为您只能向$.ajax({data: X})
传递一个值“X”,现在我知道我可以向data:
传递一个字典,但这不会计算$('form').serialize()
。现在我有$.ajax({})
来处理表单验证,还有一个$.post()
来将javascript数组传递给Flask视图。验证是True
,但是jsArray从未提交!。我错过了什么?在
在索引.html 在
{% from '_formhelpers.html' import render_field %}
<form>
{{ form.hidden_tag() }}
{{ render_field(form.first_name)}}
{{ render_field(form.last_name) }}
<button id='submit-btn'>submit</button>
</form>
<script>
var jsArray = JSON.stringify([{'item1': 'value1'}, {'item2': 'value2'}]);
$('#submit-btn').click(function(event) {
$.post(url: '/', data:jsArray, mimetype: 'application/json', success: function(){alert('data post success')});
$.ajax({
type: 'POST',
url: '/',
data: $('form').serialize(),
success: function(data) {
window.location.replace('/success');
}
});
event.preventDefault();
});
</script>
在测试.py 在
^{pr2}$在_表单帮助器.html在
{% macro render_field(field) %}
<dt>{{ field.label }}
<dd>{{ field(**kwargs)|safe }}
{% if field.errors %}
<ul class='error'>
{% for error in field.errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
{% endif %}
</dd>
{% endmacro %}
下面是一个实际的例子,希望能完全满足您的需要。在
在测试.py在
在示例.html在
^{pr2}$如果验证失败,我们将返回整个
form.errors
字典。在相关问题 更多 >
编程相关推荐