【问题标题】:Applying class on form submission on the div which wraps the input field which is invalid在包含无效输入字段的 div 上应用表单提交类
【发布时间】:2016-04-20 05:43:23
【问题描述】:

我是 Angularjs 的新手。我正在做表单验证,我想在 div 上应用一个类,其中包含一个无效状态的文本框。

这是我的代码:

<div class="col-sm-9">
    <div class="input-group" ng-class="{invalidField:submitted && $scope.signupForm.fname.$Invalid }">
        <span class="input-group-addon">
            <i class="fa fa-user"></i>
        </span>
        <input id="txtFirstName" ng-class="{submitted: submitted}" ng-model="user.FirstName" class="form-control" autofocus="" name="fname" type="text" required>
    </div>
    <span ng-show="submitted && signupForm.fname.$error.required">FirstName is required.</span>
</div>

<input type="submit" class="btn btn-lg" ng-click="SignUpUser()" value="Sign Up" />    

在提交表单时,我设置了提交 = true。如果提交为真并且该字段无效,我想在 div 上应用类 invalidField 但它不起作用。

【问题讨论】:

    标签: javascript html angularjs


    【解决方案1】:

    问题可能是您的某个表达式使用了嵌套对象,但我不确定。不要使用多个表达式,而是使用作用域函数进行比较:

    <div class="input-group" ng-class="{'invalidField': checkValidity()}">
    
    <script>
    $scope.checkValidity = function() {
        var valid = $scope.submitted && $scope.signupForm.fname.$Invalid;
    
        return valid;
    };
    </script>
    

    Demo

    这个demo展示了函数通过橙色背景返回true。

    【讨论】:

    • 谢谢isherwood。它有效,但谁能解释一下确切的问题。
    • 如果您想要更多或更好的答案,请保留问题(不接受我的答案)。很少有人会在 cmets 中找到您的后续问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-11
    • 2021-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-07
    相关资源
    最近更新 更多