6

少し問題があります。つまり、値を自動的に指定すると、クラスにとどまり、pristine変更されず、新しい値が保存されないためです。

編集すると機能し、クラスが変更されます。pristineそのクラスをキャンセルしたいです。知っている人がいたら教えてください。

<form class="form-horizontal" ng-repeat="studiant in studiants" name="form" id="form">

  <input type="hidden" name="id" value="{{studiant.studiant_id}}" class="form-control" disabled>

  <div class="form-group">
    <label for="school" class="col-md-2 control-label">School</label>
    <div class="col-md-1">
      <input type="text" id="school" name="school" class="form-control" ng-init="studiant.school=studiant.studiant_school" ng-model="studiant.school">
    </div>
  </div>
  <div class="form-group">
    <label for="name" class="col-md-2 control-label">Student's Name</label>
    <div class="col-md-10">
      <input type="text" id="name" name="name" class="form-control" ng-init="studiant.name=studiant.studiant_name" ng-model="studiant.name">
    </div>
  </div>
</form>

そしてスクリプト:

document.getElementbyId('name').value = "anything";

または、私が間違っていて、何かを変更するvalue必要ng-modelがある場合は、助けてください。

4

3 に答える 3

6

http://plnkr.co/edit/bVoljJqiK3CLB2xqZ6Zm?p=preview

そこで実際の例を見ることができます。

フォームと入力に name attr が設定されていることを確認してください。

HTML の例:

<button id="dirty-button" ng-click="addText(); myForm.myText.$setDirty()">Make Dirty</button>
<hr> 
<form name="myForm">   
<input name="myText" id="myTextInput" type="text" ng-model="myText" required>
</form>
<br/>
<span ng-show="myForm.myText.$dirty">it's dirty now</span>

簡単な関数:

$scope.addText = function() {
  $scope.myText = "now I'm dirty";
}
于 2015-04-15T14:53:14.327 に答える
-3

これは仕事をするはずです

angular.element(document.querySelector('form')).scope().formname.fieldname.$setDirty()

于 2015-04-15T14:03:33.977 に答える