我在表单中有以下内容以进行验证,应该发生的情况是,当用户单击"is"或“否”时,显示/隐藏了用户单击公民单选按钮“sno”。但是我需要在用户同时单击“否”时删除“sno”的“必需”属性,以防止验证“sno”。

<input type="radio" ng-model="citizen" value="Yes" citizen-check>Yes
<input type="radio" ng-model="citizen" value="No">No

<div ng-show='enableNo()'>
    <div id="view">
        <input type="text" id="sno" name="sno" required>
    </div>
</div>
<div ng-hide='enableNo()'>
    <div id="view">
        <input type="text" id="pno" name="pno" required>
    </div>
</div>

在 Controller 内部,我有以下显示/隐藏功能,
$scope.enableNo= function()
    {
        $log.log('enableNo called');
        if($scope.citizen == 'Yes')
        {
            return true;
        }
        else
        {
            return false;
        }
    }

如何编写指令以删除“sno”的“required”属性?

最佳答案

使用ngRequired

当ngRequired表达式的值为true时,ngRequiredrequired属性和required验证约束添加到元素。

<!-- adds 'required' attribute when ngRequired expression evaluates to true -->
<input type="text" id="sno" name="sno" ng-required="citizen == 'Yes'">

10-08 06:21