【问题标题】:How to validate input in a field on webpage without reloading the webpage?如何在不重新加载网页的情况下验证网页字段中的输入?
【发布时间】:2021-12-13 23:22:31
【问题描述】:

(我是 django 和 html 的初学者) 如何在获取用户输入的同时清除特定字段中的垃圾邮件条目? 此外,如何在不重新加载网页的情况下向用户显示输入的值不被接受,因为它是垃圾邮件。

例如,在图像显示的字段中,如果用户输入数字或类似 test123 或其他不是正确名称的内容,我的网页应该向用户显示一条消息,而不加载输入值的网页无效。我也可以放置一个显示验证的按钮来验证此名称字段值。如何使用 Django+html+jquery 实现这一点?

【问题讨论】:

    标签: html jquery django ajax


    【解决方案1】:

    最简单的方法是使用pattern属性:

    <input type="text" pattern="[A-zÀ-ž][A-zÀ-ž\s]+">
    

    提交表单时浏览器会自动检查。

    A-z 代表:拉丁字符。

    À-ž 代表变音符号。

    \s 代表空格。

    请注意,上述模式要求名称以字母开头并且至少有 2 个字符才有效。

    在 Django 中,您可以像这样定义表单字段:

    full_name = forms.CharField(label='Full name', widget=forms.TextInput(attrs={"pattern":"[A-zÀ-ž][A-zÀ-ž\s]+"}))
    

    【讨论】:

    • 太棒了,谢谢,让我试试这个
    • 我在我的 models.py 中定义了这个在 forms.py 中使用的字段,如下所示: name = models.CharField(max_length=10, verbose_name='Port Name',blank=True, null=True) 有没有办法像您提到的表单那样向模型添加模式?
    • 您需要在表单定义中覆盖 clean_name 方法并在那里进行验证。 docs.djangoproject.com/en/3.2/ref/forms/validation/…
    • 谢谢,如果我在我的表单定义中使用这个方法,我如何在网页上使用这个方法而不提交/重新加载?有没有办法在html中调用这个方法?
    • 不,那是服务器端的。对于客户端,请使用上述模式,或其他涉及 javascript 的方法。
    猜你喜欢
    • 2010-12-28
    • 2015-07-31
    • 1970-01-01
    • 2016-02-15
    • 2021-12-22
    • 2021-02-05
    • 2012-05-26
    • 2019-12-01
    • 2020-09-12
    相关资源
    最近更新 更多