Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
提交前检查javascript中django表单错误的最佳方法是什么?_Javascript_Django_Django Forms_Error Checking - Fatal编程技术网

提交前检查javascript中django表单错误的最佳方法是什么?

提交前检查javascript中django表单错误的最佳方法是什么?,javascript,django,django-forms,error-checking,Javascript,Django,Django Forms,Error Checking,实际上,我需要一个在javascript验证(客户端)和django表单验证(服务器端)中具有相同错误消息的方法 我搜索了任何django库,但没有找到任何。这是我在SO中发现的最相关的问题,但似乎没有帮助: 你知道django库中有没有这样的库,如果没有,最好的方法是什么 提前感谢。我找不到任何现有的库可以轻松完成这项工作,因此我使用了一种变通方法 Django表单错误为列表格式。很难将dict列表从Django传输到JS。我有一个方便的功能。此函数(convertErrorsToDict)

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

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

你知道django库中有没有这样的库,如果没有,最好的方法是什么


提前感谢。

我找不到任何现有的库可以轻松完成这项工作,因此我使用了一种变通方法

Django表单错误为列表格式。很难将dict列表从Django传输到JS。我有一个方便的功能。此函数(convertErrorsToDict)将每个参数的所有错误合并为一个错误:

视图。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)
{% load jsonify %}
<script type="text/javascript">
    var errors={{errors|jsonify}};    
</script>
FileName.html:

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)
{% load jsonify %}
<script type="text/javascript">
    var errors={{errors|jsonify}};    
</script>

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

当表单做得很好时,为什么希望javascript这样做?您可以使用jquery的验证插件来实现对用户更方便的功能(因为提交后检查成本很高)。基本上,您可以使用jquery插件,如:,在提交之前,验证表单字段为什么不使用HTML5验证?很好,这样的话,你几乎不需要处理错误的输入。HTML5验证(带有“模式”属性)不适用于textarea不幸的是。。。