【发布时间】:2017-02-21 16:33:02
【问题描述】:
我正在使用输入文本字段的readonly、disabled 和required 属性,如下所示:
<input type="text" id="visitDate" name="visitdate" readonly="readonly" disabled="disabled" required="required" />
我的问题是三个属性中的两个,即 disabled 和 readonly 工作正常,但 required 不工作。提交按钮允许提交,即使它是空的。但是如果我删除readonly表单就不能空提交。
我用
只读因为我正在使用日期选择器并且不允许用户 输入日期手册。
已禁用,因为我希望在开始时禁用此输入字段
必需,因为使用必须从日期选择器中选择日期,以便日期 不会为空。
【问题讨论】:
-
澄清一下,预期的行为是无法发送表单,因为有一个无法填充的必填字段?
-
如果您禁用一个字段,那么它不会提交该字段,这就是您需要的字段不起作用的原因。使用只读且必需。
-
@AmanRawat 我已经提到“在开始时禁用”,但在提交表单之前没有提到。稍后将在提交表单之前启用输入。
-
@ÁlvaroGonzález 对不起,我没能找到你。我不明白“无法填充”。
-
实际发生的情况是,默认情况下,如果字段为只读或禁用,则不会触发 HTML 中的验证。原因很简单,如果该字段为空且属性禁用或只读,并且应用了必需的验证,则表单在任何时候都无法有效。因此,解决方案很冷,例如处理 keyup/keydown 事件,以便无法添加输入并且对于禁用功能,我建议不要在需要之前将日期选择器添加到元素中。希望这会有所帮助。这不是正确的方法,但它会正常工作。
标签: javascript jquery html forms