AngularJS,如何在选择>选项上使用min=“”来验证表单
AngularJS, how to use min="" on select > options to validate form?
例如,假设我有以下代码:
<form name="myForm">
<select id="mySelect" required min="1" ng-model="foo">
<option value="0">Zero</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<button>My Button would go here</button>
</form>
正如您可能知道的那样,我的目标是确保如果选择了选项零,则表单无效(因为最小数字为 1)。但是,由于某种原因,这不起作用。如何看到 min=" 适用于这些值?
而且,不,就我而言,我无法取出零选项,我需要对其进行验证。
提前致谢
您能否保留选项"零"但没有值,"必需"属性会捕获该值?
<form name="myForm">
<select id="mySelect" required ng-model="foo">
<option value="">Zero</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<button>My Button would go here</button>
</form>
如果您不能使用 value=" 并且像 Nicholas Smith 的答案一样需要,那么您也可以使用
ng-required="foo > 0"
我认为这里最好的方法是添加一个自定义验证指令,以使用<select>
元素扩展ngMin
的范围:
yourModule.directive('selectMin', function () {
return {
restrict: 'A',
require: 'ngModel',
scope: {
ngMin: '='
},
link: function ($scope, $element, $attrs, ngModelController) {
ngModelController.$validators.min = function (value) {
if (value) {
return value >= $scope.ngMin;
}
return true;
};
}
};
});
用法:
<select id="mySelect" required select-min ng-min="1" ng-model="foo">
<option value="0">Zero</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如何使用WCF服务和javascript表单post上传.doc文件
- Javascript生成的表单未提交
- 如何使用javascript或html下载PDF格式的填写表单
- HTML表单提交时未执行外部函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- Ajax发布表单序列化,发布引号'
- 多级HTML表单
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 在验证和发送邮件后更改联系人表单的 html
- jQuery表单添加不适用于下拉列表
- Rails/JSON:如何将JSON用于jquery UI自动完成表单
- 如何从pdftron webviewer获取表单数据
- JS验证ajax返回的html中的表单数据
- Javascript更新孙窗口中的表单元素
- 解析javascript表单验证器
- 阻止表单元素提交
- AngularJS,如何在选择>选项上使用min=“”来验证表单
- 为什么禁用表单提交会影响min和max属性?