フィールドの下にショーの検証エラーのあるフォームがあります。 blur
イベントの検証エラーを示します。問題は、リンクをクリックしたときにエラーメッセージが表示された場合、このフォームの下のリンクをクリックできないことです。問題は、エラーメッセージがクリックイベントのDOMおよび位置に注入された後、実際のリンクがダウンしているという事実に関連している問題を再現するにはリンクの上高さ/コンテンツがジャンプしているときにクリックイベントが発生しない
<form name="myForm" ng-model-options="{updateOn: 'blur'}">
<input type="text" name="firstName" ng-model="firstName" required>
<div style="color:red; margin-top: 20px" ng-if="myForm.firstName.$touched && myForm.firstName.$invalid">
Required field
</div>
</form>
<a href="https://www.google.com" target="_blank">Static link</a>
<a href="" ng-click="linkClick()">Click Me</a>
angular.module('formExample', [])
.controller('ExampleController', ['$scope', function($scope) {
$scope.firstName = 'test';
$scope.linkClick = function(){
alert('link click');
}
}]);
ではありません入力テキストを削除し、リンクをクリックして(ぼかしイベントをトリガーする)。警告は表示されません。もう一度クリックすると、それが実行されます。それは(フォームを使用してすべてのページを)一般的な方法で動作させるためにどのよう
私は、リンク(または何か他)をクリックするたびに、このクリックイベントに関係なく、コンテンツのジャンプを解雇することを
あなたがテキストボックスのエラーメッセージ第二の側面を示している可能性がある。ここでは
は、あなたが(すべてのバニラのJS)を再生するためにいくつかのコードですか? –私はすべてのフォームのレイアウトをやり直すことなくそれを行う方法があるかどうかを知りたいと思います。また、私たちのウェブサイトは応答性がありますので、コンテンツが確実にジャンプしないようにしてください。 – jonasnas
これは好きな方には良い方法ですし、送信後にすべてのエラーを表示することもできます。 –