javascript - django-parsley 验证不起作用

标签 javascript django validation client-side parsley.js

我已经在 modelform 中完成了服务器端验证,并在我的项目中自动生成了用于注册表单的 HTML 文件,现在我想将其转换为客户端验证。我正在尝试通过仅提供引用链接来使用 parsley.js。 .它也渲染了正确的文件,但 parsley.js 的验证不起作用..

请帮帮我... 这是我的模式类代码:

<code>
 `class Organization(models.Model):
  name = models.CharField(max_length=100, 
                        blank = False,  
                        null = False, 
                        help_text = "Please enter full name without abbreviations",
                        verbose_name = "Organization's Full Name:",
                        unique = True,
                        error_messages = 
                  {'unique': "Your organization has already signed up with us!" },
                        validators = [organization_name_validator],
                        )
    website = models.URLField(verbose_name = 'Website of your organization:',

    help_text = "Please enter the complete URL of your      organization's website",
                          null = True,
                          blank = True,
                         validators = [url_validator],
                          )
     #TODO: the following should have some custom phone number type of field
    phone_number = models.CharField(max_length=18,
                                blank = False,
                                null = False,

                                help_text = ""
                                verbose_name = "Official Phone Number",
                                unique = True,
                                error_messages = 
  {'unique' : 'Looks like an has already signed up!'},
                                validators = [phone_number_validator]
                                )

   registered_on = models.DateTimeField(auto_now_add = True)


  active = models.BooleanField(default = True,
                             verbose_name = 'Organization enabled ?',
                             help_text = ''
                              )

   signed_up_by_role = models.CharField(max_le ngth = 12,
                                    blank = False,
                                    null = False,
                                    verbose_name = ':',
                                    help_text = ""
                                   )


  def clean(self):

    if len(self.phone_number.strip()) == 0:
        raise ValidationError("Phone number cannot be empty.")


    if self.name.strip() == '':
        raise ValidationError("Name cannot be empty.")

   def __unicode__(self):
    return self.name`

这是我渲染的 html 文件,我为了欧芹集成目的对其进行了修改:

</code>   
<b>

<!DOCTYPE html>
{% load static %}

<html>
<head>
    <title> {% block title %}Welcome to laresumex!{% endblock %}</title>
<script language='javascript' src="{% static 'js/jquery-2.1.0.js' %}"> </script>
    <script language='javascript' src="{% static 'js/parsley.min.js' %}"> </script>
<style type='text/css'>
        ul.parsley-error-list {
            font-size: 11px;
            margin: 2px;
            list-style-type:none;
        }
        ul.parsley-error-list li {
            line-height: 11px;
            color: #b94a48;
            background: #f2dede;
            border: 1px solid #eed3d7;
        }   
        $(document).ready(function () {
      $('#demo-form').parsley()
  });

</style>



</head>
<body>

 {% block body_block %}
<div class="hero-unit">
<h1>Organization signup form</h1>        
<div class="container">
<form id='form' data-parsley-validate method="post" >
{# cross-site-request-forgery-prevention #}
{% csrf_token %}

{% for field in form.visible_fields %}
        {{ field.label_tag }} {{ field }} 
         {# we have to use field.field here because of visible_fields overlay #}
        {% if field.field.required %}
            <sup>*</sup>
        {% endif %}
        <sub>{{ field.help_text }}</sub>
        <br/>{{ field.errors }}

{% endfor %} 

    {# Include the hidden fields #}
{% for hidden in form.hidden_fields %}
    {{ hidden }}
{% endfor %}
{# Include the visible fields #}

<div>
    <p><input type="submit" class="btn" value="Signup!" /></p>
</div>

</form>

</div>
{% endblock %}
</body>
</html>'
</b>
</code>

最佳答案

在您的 html 文件中,您已将欧芹初始化放入样式标签内。将其放在脚本标记内。

  <style type='text/css'>
    ul.parsley-error-list {
        font-size: 11px;
        margin: 2px;
        list-style-type:none;
    }
    ul.parsley-error-list li {
        line-height: 11px;
        color: #b94a48;
        background: #f2dede;
        border: 1px solid #eed3d7;
    }
 </style>
 <script>
    $(document).ready(function () {
      $('#demo-form').parsley()
    });
 </script>

关于javascript - django-parsley 验证不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22515706/

相关文章:

html - Django 模板 - 2 个 HTML 表格需要它们匹配

asp.net - 如何动态设置 ValidationGroup

asp.net-mvc - 在 ASP.NET MVC 中同时使用域对象和 View 模型时避免验证逻辑重复的良好做法

javascript - 在javascript中切换心形html代码

javascript - 代码继续执行而不等待

javascript - 我如何对我的数据关闭 ="modal"产生两种效果;一个重新加载父页面,而另一个不加载

python - Django 和 AppEngine 的多项设置

javascript - React useState 钩子(Hook)没有持续更新

java - 使用逻辑条件验证文本字段的完整性

javascript - 将 HTML 插入到一个 div 中