【问题标题】:what is the best way to check django form errors in javascript before submitting?在提交之前检查javascript中的django表单错误的最佳方法是什么?
【发布时间】:2013-05-24 23:14:49
【问题描述】:

实际上我需要一个在 javascript 验证(客户端)和我的 django 表单验证(服务器端)中具有相同错误消息的方法。

我为此搜索任何 django 库,但没有找到。这是我在 SO 中提出的最相关的问题,但似乎没有帮助:

Django Javascript form validation

您是否知道任何 django 库,或者如果不知道,最好的方法是什么?

提前致谢。

【问题讨论】:

  • 当表单做得很好时,为什么要让 javascript 做到这一点?你可以使用jquery的验证插件来实现虽然
  • 对用户来说更方便(因为提交后检查成本高)。
  • 基本上,你可以使用像jqueryvalidation.org这样的jquery插件,在提交之前,验证表单字段
  • 为什么不直接使用 HTML5 验证?它非常好,这样,您几乎不必处理错误输入。
  • HTML5 验证(带有 'pattern' 属性)不幸地不适用于 textarea...

标签: javascript django django-forms error-checking


【解决方案1】:

我找不到任何现有的库来轻松完成此操作,因此我使用了一种解决方法。

Django 表单错误是列表格式。将 dict 列表从 Django 转移到 JS 很困难。我有一个派上用场的功能。此函数 (convertErrorsToDict) 将每个参数的所有错误连接在一起成为 1 个错误。:

views.py:

def convertErrorsToDict(errors): #previously errors={f1:[er1]}. make it {f1:'er1'} so we can render nicely
    #converts form errors from list to dictionary
    errors2={}
    for f in errors:
        errors2[f]='.'.join(errors[f])
    return (errors2)


def setPassword(request):
    your_form=FormName();
    context={}
    errors=convertErrorsToDict(your_form.errors)
    context['errors']=errors;
    return render(request,'htmlFileName.html',context)

文件名.html:

{% load jsonify %}
<script type="text/javascript">
    var errors={{errors|jsonify}};    
</script>

文件名.js 在 js 文件中,我们现在可以直接使用 errors 作为变量。

console.log(errors.para1) //para1 is first para in the form. eg first_name
console.log(errors.para2) 

当我们需要完全控制表单错误内容时,此功能很有用。

【讨论】:

    猜你喜欢
    • 2017-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多