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

How to remove or disable input from form validation

本文关键字:输入 删除 表单 验证      更新时间:2023-09-26

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

<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>

请注意,当您点击切换时,输入被禁用,但"提交"按钮不会启用。

在这种情况下,

您可以使用 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>
你可以

用纯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();