如何从表单验证中删除或禁用输入

时间:2014-12-05 09:00:03

标签: javascript angularjs forms validation

我有一个可选的禁用输入。禁用时,它似乎仍然参与表单验证。如何从表单验证中删除此输入?

<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当你点击切换时输入被禁用但提交按钮没有启用。

2 个答案:

答案 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();