デフォルトで非表示になっているエラーのあるフォームがあります。これは CSS (スタイラス) です。
span.error
display: none
position: relative
padding: .25em .5em
width: 75%
margin-top: 5px
margin-bottom: 15px
float: right
text-align: center
background: myorange
border-radius: radius
&:after
arrow(6px)
top: -12px
left: 50%
margin-left: -12px
border-bottom-color: myorange
次に、jQuery で AJAX コールバックのエラーを表示したいので、次のようにします。
$form.submit(function(e) {
e.preventDefault();
$.post($form.attr('action'), $form.serialize(), function(data) {
// handle ajax then show errors
$('.error').show(); // doesn't work properly here, only 2 show up
});
});
私が抱えている問題は非常に奇妙です。6 つのエラーがありますが、Chrome に表示されるのは 2 つだけです。私が試した他のブラウザはすべて正常に動作します。devtools を開いて閉じるか、1 秒間ズームインおよびズームアウトすると、予期したとおりにエラーが表示されます。
$('.errors').show()
イベントの外に出るsubmit
と、期待どおりに機能し、6 つのエラーすべてが表示されることがわかりました。
$('.error').show(); //works here
$form.submit(function(e) {
e.preventDefault();
...
});
float:right
また、削除するとChromeですべてが正常に機能することもわかりましたが、明らかにこのプロパティが必要です。私が見つけたいくつかの 解決策で再描画をトリガーしようとしましたが、今のところうまくいきません。何時間も立ち往生しています...これを解決する方法についてのアイデアはありますか?