防止隐藏表单字段在AngularJS中被验证的最佳方式是什么?AngularJS:防止隐藏表单字段被验证
回答
我最初错过了内置ngRequired
指令。还有一个required
标签,让我困惑。
现在,我们可以使用相同的逻辑(我们用来隐藏元素)将ngRequired
设置为false。
下面是一个实际使用案例:我想问已婚的人他们有多少孩子,但是,如果他们没有结婚,只是隐藏关于孩子的领域。
<form ng-app name="form">
Marital status:
<select ng-model="maritalStatus" required>
<option value="">Select...</option>
<option value="M">Married</option>
<option value="UM">Unmarried</option>
</select>
<div ng-show="maritalStatus == 'M'">
Number of children: <input type="number" ng-model="children" ng-required="maritalStatus == 'M'">
</div>
(for testing) Is this form correctly filled? {{form.$valid}}
</form>
您可以通过使用指令删除required
属性:
<div ng-app="myApp">
<input type="backbutton" id="firstName" name="firstName" type="text" required/>
var app = angular.module('myApp',[]);
app.directive('input',function($compile){
return {
restrict:'E',
compile:function($tElement,$tAttrs){
console.log("hi there");
var el = $tElement[0];
if(el.getAttribute('type')){
el.removeAttribute('type');
el.setAttribute($tAttrs.type,'');
return function(scope){
$compile(el)(scope);
}
}
}
}
});
app.directive('remove',function($compile){
return {
restrict: 'A',
replace:true,
template:'',
link: function (scope, element, attrs) {
element.removeAttr('required');
}
}
});
前:
<input id="firstName" name="firstName" required="" remove="" class="ng-scope">
后:
<input id="firstName" name="firstName" remove="" class="ng-scope">
Fidlle什么也没做!? – IamStalker
它从'input'中删除'required'。你可以调试它,并检查在开始时你有“必需”。 –
ahhh好的抱歉没有注意到它。 – IamStalker
您也可以使用ng-if而不是ng-show将其从DOM /表格中完全添加或删除。
<div ng-show="maritalStatus === 'M'">
Number of children: <input type="number" ng-model="children" ng-required="maritalStatus == 'M'">
</div>
这个
<div ng-if="maritalStatus === 'M'">
Number of children: <input type="number" ng-model="children" ng-required="true">
</div>
- 1. FlaskWTF验证器可以防止隐藏表单字段
- 2. 隐藏字段验证
- 3. 不验证隐藏字段
- 4. 验证隐藏字段
- 5. JQuery验证:验证隐藏字段
- 6. 使用隐藏字段验证表格
- 7. 防止隐藏字段的变更
- 8. 在AngularJs中验证后隐藏表格
- 9. ExtJS防止验证带显示的表单字段:无
- 10. 用CodeIgniter表单验证类重新填充隐藏字段
- 11. 支柱逃脱表单验证的隐藏字段
- 12. Symfony2的额外领域FormError与隐藏字段验证表单
- 13. 与隐藏字段一起进行表单验证
- 14. symfony表单验证邮件隐藏字段未显示
- 15. 如何防止隐藏字段干扰MVC中的服务器端验证?
- 16. 防止Vim隐藏字符
- 17. 隐藏字段的Coldfusion cfform验证
- 18. 隐藏字段上的Knockout.js验证
- 19. 隐藏字段的必需验证
- 20. 验证隐藏的输入字段
- 21. 需要隐藏字段验证mvc
- 22. MVC3隐藏字段的验证
- 23. 必填字段验证不隐藏
- 24. C#没有验证时隐藏字段
- 25. 的隐藏字段执行验证
- 26. symfony隐藏字段,但验证它们
- 27. jQuery:验证首先隐藏的字段
- 28. 避免验证隐藏字段 - Webmatrix
- 29. 如何验证隐藏字段
- 30. 验证码和隐藏字段
等都可能只是删除了'required'属性,当你隐藏了它? – Cherniv
如果你有代码,请发布它来帮助我们,有足够的选项来实现你的逻辑,但是不要从头开始,而只是改变你的代码。小提琴/ PLUNKER会很棒 –
有没有人回答你的问题?许多人只是给你选择禁用所需的验证,但没有任何其他......像,数字......或者我错过了什么? – genuinefafa