我的表单中有一个选择控件和一个文本控件。当选择发生变化时(当用户选择特定值时),我希望文本控制是强制性的。打开表单时,此文本控件不应是必需的。这可能吗?
使用bootstrap 3和AngularJS。对我们两个来说都是新手。
这是我的代码:
<div class="form-group">
<label class="col-sm-2 control-label">Select an Option</label>
<div class="col-sm-4">
<select class="form-control" name="type">
<option value="A">Option A</option>
<option value="B">Option B</option>
</select>
</div>
<div class="col-sm-4">
<input type="text" class="form-control" name="text" id="text" ng-model="text" >
<span class="help-block" style="color:red" ng-show="myform.text.$dirty && myform.text.$invalid">
<span ng-show="myform.text.$error.required">Required, when Option B is selected</span>
</span>
</div>
</div>
默认情况下&#34;选项A&#34;将被选中,当用户选择&#34;选项B&#34;时,我希望我的文本控制是强制性的。打开表单时,这不是强制性的
非常感谢任何帮助
答案 0 :(得分:2)
我会在您的选择框中使用ng-change来设置$ scope属性,该属性将在文本字段中切换ng-required的值。
选择框:
<select class="form-control" name="type" ng-model="optionValue" ng-change="setRequired()">
<option value="A">Option A</option>
<option value="B">Option B</option>
</select>
文字字段:
<input type="text" class="form-control" name="text" id="text" ng-model="text" ng-required="textRequired" />
控制器:
function mainController($scope) {
$scope.optionValue = 'A';
$scope.textRequired = false;
$scope.setRequired = function() {
if($scope.optionValue==='B') {
$scope.textRequired= true;
}
else {
$scope.textRequired = false;
}
}
}