【问题标题】:Don't allow submit form when fields in blank Django Python当空白 Django Python 中的字段时,不允许提交表单
【发布时间】:2016-05-16 01:46:13
【问题描述】:

我想知道如何防止用户在任何字段留空时提交表单,(我知道如何在服务器端验证这一点,但我正在客户端上寻找答案我认为的一面) 谢谢!

**

更新

** 这是我的表单,它结合了我创建的一个类(Prestamista)中的一些字段,它还为 User 类添加了 3 个字段,我设法通过将它添加到小部件中来获取最后 3 个中的 require 属性,但我没有'不知道如何为 Prestamista 类中的其他人设置 require 参数

class MyRegistrationForm(ModelForm):
    class Meta:
        model= Prestamista
        fields = ['trabaja', 'sueldo', 'edad']
        fields_required = ['trabaja', 'sueldo', 'edad']
    username = forms.CharField(max_length= 30, required=True, widget=forms.TextInput(attrs={'required': 'true'}))
    password = forms.CharField(required=True, widget = forms.PasswordInput(attrs={'required': 'true'})) 
    email = forms.EmailField(widget=forms.TextInput(attrs={'class': "emailFields",'required': 'true'}))

【问题讨论】:

  • 到目前为止你尝试过什么?对我来说,如果您希望它发生在客户端,这听起来像是与 django 无关。您可能需要使用某种 javascript。
  • 那么你应该用 Javascript 标记这个问题,因为这是在客户端强制执行任何操作的唯一方法。
  • @DanielRoseman 在输入中使用required 应该足以防止在不使用js 的情况下提交表单。

标签: python django forms field


【解决方案1】:

正如 patrick.ryan93 指出的那样,您可以将 required 与输入一起使用,但您可以将其添加到表单对象的小部件中,而不是像这样渲染表单。

somefield = forms.TextField(
    required=True,
    widget=forms.TextInput(attrs={'required': 'true'}),
)

应该渲染

<input type="text" name=... required>

除非所有字段都有值,否则不会提交:jsfiddle

【讨论】:

    【解决方案2】:

    将表单传递给您的模板,遍历它并将每个字段设置为必填。不需要Javascript。

    {% for field in form %}
        <input type="text"
          class="form-control" 
          name="{{ field.label }}" 
          id="{{ field.name }}"
          value="{{ field.name }}" 
         required />
    {% endfor %}
    

    【讨论】:

    • 不知道为什么你得到了所有这些反对意见。在您回答问题时,OP 从未指定他们是否使用 django 表单。别担心。继续前进。社区需要您回答更多问题并帮助人们。
    猜你喜欢
    • 1970-01-01
    • 2015-06-04
    • 1970-01-01
    • 2012-06-08
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    • 2016-04-11
    相关资源
    最近更新 更多