我有一个选择与另一个连接,当第一个选择时需要第二个, 我通过控制器上的jquery来做这件事
<select id="month-selector" name="month" ng-change="controller.setRequired()">
</select>
<select id="year-selector" name="year">
</select>
//controller
$("#year-selector").prop('required', true);
在我的表单上,我有一个添加按钮,根据表单有效性启用/禁用
<button ng-disabled="!controller.myForm.$valid">
Add
</button>
所以当我在第一个选择中选择一个选项时我想要禁用该按钮,直到我在第二个选择上选择一个选项,我尝试在脏状态下设置第二个选择以触发表单无效但是它没有工作。
//controller
$("#year-selector").prop('required', true);
myForm.customerSinceYear.$setDirty();
答案 0 :(得分:1)
您可以在第二个选择元素上使用ng-required,仅在第一个具有值
时才需要[System.Web.Http.HttpPost]
public async Task<IHttpActionResult> PostNotification()
{
string body = "";
await
Request.Content.ReadAsStreamAsync().ContinueWith(x =>
{
var result = "";
using (var sr = new StreamReader(x.Result))
{
result = sr.ReadToEnd();
}
body += result;
});
答案 1 :(得分:1)
试试这个
function TestController($scope) {
$scope.required = false;
$scope.setRequired = function(){
$scope.required = true;
}
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="" ng-controller="TestController" >
<form name="myForm">
<select id="month-selector" name="month" ng-model="month" ng-change="setRequired()" required>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<select id="year-selector" ng-model="year" ng-required="required">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<button ng-disabled="myForm.$invalid">
Add
</button>
</form>
</div>