次のフォームが
あります。星をクリックすると、クリックした星の番号が入力に自動的に入力されます。(3 番目の星をクリックすると、下の画像のように、入力に番号「3」が入力されます)
<form name="completeSurveyForm" role="form" novalidate ng-submit="vm.save()">
<ul class="question-list">
<li data-ng-repeat="question in vm.survey.questions | orderBy:'conditionalOrderId' track by question.id ">
<small class="label label-primary pull-right">{{question.questionTypeName}}</small>
<h3>
<b>{{$index +1 }}.</b> {{question.questionBody}}
</h3>
<hr> <!-- Replace here with directives -->
<div data-ng-switch="question.questionType">
<numericrange question="question" data-ng-switch-when="NUMERIC_CHOICE" />
</div>
</li>
</ul>
<button type="submit" ng-disabled="completeSurveyForm.$invalid " class="btn btn-primary">
<span data-translate="fqApp.business.form.submit">Submit</span>
</button>
</form>
また、numericrange ディレクティブは次のようになります。
<div class="row">
<div class="col-md-2" ng-if="!completed">
<div>
<span ng-mouseover="showHovered($event)" ng-mouseleave="clearStars($event)" ng-click="selectStar($event)"
data-ng-repeat="sym in range(startNonActive(question), question.maxValue, 1)" class="{{question.symbol}} starred-element" value="{{$index}}">
</span>
<input type="number" name="{{question.id}}"
data-ng-model="question.numericValue"
data-ng-value="numberOfSelectedStars" ng-required="true" />
</div>
</div>
</div>
問題に入る:
星をクリックして、入力に数値が動的に入力されると、次の画像のようにフォームの検証に失敗します。
フォームが有効な入力に手動で数字を書き、送信ボタンをクリックできます。
しかし、なぜ入力に数字を手動で書き込むと、フォームが有効になり、「送信」ボタンをクリックできます。星を選択して入力が自動的に入力されると、フォームは検証されず、「送信」をクリックできません' ボタン?