我有一个可选的禁用输入。禁用时,它似乎仍然参与表单验证。如何从表单验证中删除此输入?
<form ng-app name="myForm">
<label>Name</label>
<input type="text" name="name" ng-model="form.name" ng-disabled="show" required>
<input type="submit" ng-disabled="myForm.name.$invalid">
<input type="submit" ng-click="show = !show" value="Toggle">
</form>
请注意example当你点击切换时输入被禁用但提交按钮没有启用。
答案 0 :(得分:1)
在这种情况下,您可以使用ng-required:
<form ng-app name="myForm">
<label>Name</label>
<input type="text" name="name" ng-model="form.name" ng-disabled="show" ng-required="!show">
<input type="submit" ng-disabled="myForm.name.$invalid">
<input type="submit" ng-click="show = !show" value="Toggle">
</form>
答案 1 :(得分:0)
您可以使用纯JavaScript执行此操作。通过搜索您创建的属性。
function validateForm() {
var inputElements = document.forms["myForm"].getElementsByTagName("input");
for(inpt_ele=0; inpt_ele<inputElements.length; inpt_ele++) {
if(inputElements[inpt_ele].getAttribute("disabled") == "disabled") {
//skip
}
else {
//validate
}
}
}
validateForm();