应用选择菜单的表单验证,类似于 html5 所需的属性 <input>
Applying form validation of select menu similar to html5 required attribute of <input>
我正在尝试使表单中的所有内容都需要,包括选择菜单。 W3Schools表示,没有主流浏览器支持<select>
标签上的required
属性。
http://www.w3schools.com/tags/att_select_required.asp
真的没有办法像输入文本字段一样在选择菜单上提供客户端验证吗?我这里有一个有效的 plunkr,如果您单击检查所有内容为空白,警告会出现在第一个输入下,即使它上面有一个选择菜单。
如果它正在工作,"此字段是必填的"消息将出现在"选择"菜单下,因为它是第一个无效的表单项。此外,如果您填写所有输入字段,则不会在任何地方显示任何消息。代码是有角度的,跨越 5 个文件,因此请在 plunkr 上查看它。
如果您知道任何方法可以应用相同的验证来选择菜单,或者确认这是不可能的,我将不胜感激。
W3schools像往常一样不正确。像 MDN 这样的有用参考select
告诉所有主要浏览器的现代版本都支持required
;支持的主要问题是在IE 9及更早版本中缺乏支持。
但是,您需要注意属性的定义:这意味着控件满足约束当且仅当其值为非空时。由于默认情况下会选择第一个选项(除非您使用 selected
属性最初选择另一个选项),因此需要将其值设为空。例:
:invalid { outline: solid red }
<form>
<select name=fruit required>
<option value="">Please select a fruit
<option>apple
<option>orange
</select>
<input type=submit value=Submit>
</form>
如果您还需要涵盖 IE 9 及更早版本,只需添加简单的 JavaScript 代码,在提交表单时(或当您在浏览器中检查表单数据时)检查 select
元素value
属性是否不为空。
内置的HTML 5警报不会出现,因为从技术上讲,您已经选择了一个选项。 如果元素中的 ng-model
属性不引用特定的选项值,则 Angular 的 select
指令将创建并默认为空白选项。
检查您的选择元素,您将看到
<option value="?" selected="selected"></option>
您可以让 ng-model
属性引用有效的选项值,然后隐藏自动生成的空白值选项,但是,您将始终预先选择一个值,并且所选元素的动画效果将丢失。 请参阅此处的示例。
您唯一的其他选择是创建自己的验证,并在每个选择元素下都有一个div,该div 根据是否选择了有效值来显示或隐藏。
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 全局变量和全局对象的属性之间有什么区别吗
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 序列化数据属性中对象的最可靠方法
- 分析高度属性时出现意外值{{specs.height}}.index.html
- AngularJS:如何访问自定义指令中的input[date]min属性
- 从Input Javascript在脚本中添加属性
- 将input复选框的DOM属性更改反映到innerHTML属性中
- 角度2 - 检测属性@Input的变化
- jQuery 设置 input.value = input.title(或其他输入属性)
- 如何针对表格进行测试's”;input.占位符”;JavaScript函数的属性
- 使用input标记的值更改对象的属性
- 使用dojo或javascript检查input标记中是否有属性集
- 如何使用html input required属性将一组输入设置为required ?
- @Input——如何从父组件绑定子组件的ID属性
- 从input.value添加对象属性
- 将Input Value属性设置为带有空格的变量
- Input Required属性在javascript生成时不起作用
- Jquery Token Input-传递属性动态搜索属性值