単純に、この単純なフォームを検証するために JQuery 検証を使用しています
<form id="getting-started-form">
<label>Name</label>
<input type="text" id="txt-name" name="name" />
<br />
<label>Email</label>
<input type="text" id="txt-email" name="email" />
<button type="submit">Validate</button>
</form>
このフォームが ng ビュー内に含まれていない場合、検証は正常に機能しますが、ng ルートを使用してこのテンプレートを取得すると、検証は同じフォームで機能しません。
これは私の単純な HTML ページです
<!DOCTYPE html>
<html data-ng-app="ngViewValidate">
<head>
<title></title>
</head>
<body>
<div data-ng-view="">
</div>
<br />
<a href="#/ValidationTmpl">Go to validation template </a>
</body>
<script src="../Scripts/angularjs.js"></script>
<script src="../Scripts/angular-route.js"></script>
<script src="../Scripts/jquery-2.0.2.js"></script>
<script src="../Scripts/jquery.validate.js"></script>
<script src="../Scripts/jquery.validate.unobtrusive.js"></script>
<script src="JQueryValidateWithNgView.js"></script>
</html>
これは私のJavaスクリプトファイルです JqueryValidateWithNgView
var ngViewValidate = angular.module('ngViewValidate', ['ngRoute']);
ngViewValidate.config(function ($routeProvider , $locationProvider) {
$routeProvider.when('/ValidationTmpl',
{
templateUrl: '/WithAngular/ValidationTmpl.html'
})
})
$('#getting-started-form').validate({
rules: {
name: {
required: true
},
email: {
required: true
}
},
submitHandler: function (form) {
console.log('Valid');
},
invalidHandler: function (event, validator) {
console.log('InValid');
}
})
問題は、回避策を使用してngビュー内のテンプレートでJQuery検証を使用できるか、または角度検証を使用する必要があるかです。