私のウェブページにBootstrap 3 DateTimePickerの入力があり、既存のデータが変更されると「編集」ボタンを有効にしようとしています。問題は、datatimepickerを使用してdatetimeを変更しても、フォームが「汚れている」とマークされていないため、ボタンが灰色で永久にグレー表示されることです。datetimepicker(ブートストラップ)の変更後にフォームをダーティー状態(AngularJS)に設定する
<input type="submit" value="{{!myCtrl.thing.id ? 'Add' : 'Update'}}" class="btn btn-primary btn-sm" ng-disabled="myForm.$invalid || myForm.$pristine">
私はjQueryのを使用してdatatime変更イベントをキャッチする方法を知っているが、私はそれが汚れに状態です変更するには「あるmyForm」にアクセスする方法任意のアイデアを持っていません。
<form ng-submit="myCtrl.submit()" name="myForm" class="form-horizontal">
<label class="col-md-2 control-label" for="date">Date:</label>
<div class="col-md-7">
<div class="input-group date" id='datetimepicker'>
<input class="form-control" name="date" id="datetimepicker1" placeholder="select date">
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<script type="text/javascript">
$(function() {
$('#datetimepicker').datetimepicker({
});
});
$("#datetimepicker").on("dp.change", function(e) {
//CODE TO set myForm to 'dirty' state.
});
</script>
</form>
その解決策では、私はUncaught TypeErrorを持っています:myForm。$ setDirtyは関数ではありません。 – TheOmniano
ああ、私はあなたがjQueryを使っているのを忘れていました。私は[Angularのために特別に設計されたUI Bootstrapディレクティブ](https://angular-ui.github.io/bootstrap/#!#datepickerPopup)を使用し、AngularでjQueryを使用することを推奨します。 – Lex