私は古いMVC3プロジェクトを持っていて、入力後にテキストフィールドのCSSの1つが変更されていることに気付きました。テキストフィールドは、検証後にCSSまたはクラスを失うように見えます。mvc3で邪魔にならない検証後に入力CSSが変化する理由
ここで私は問題を絞り込むために使用してきましたコードです:と
レイアウト
<!DOCTYPE html />
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>@ViewBag.Title</title>
<meta http-equiv="X-UA-Compatible" content="IE=8"/>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
</head>
<body>
@RenderBody()
<script src='@Url.Content("~/Scripts/jquery.validate.min.js")' type="text/javascript"></script>
<script src='@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")' type="text/javascript"></script>
</body>
</html>
ビュー
<h2>DummyView</h2>
<p>No Class</p>
<input type="text" />
<p>With Class But Outside Form</p>
<input type="text" class="big-text-field" />
@using (Html.BeginForm())
{
<p>With Class Inside Form</p>
<input type="text" class="big-text-field" />
}
CSS
input[type="text"][class="big-text-field"]
{
width: 400px;
}
.field-validation-valid
{
display: none;
font-family: Arial;
}
フィールドビッグテキストfieフォームの外に追加されたクラスは、入力後、フォーカスを失った後でも400ピクセルを維持します。フォーム内のフィールドは400ピクセルから始まりますが、入力後にフォームの外にあるクラスレスフィールドのサイズに戻り、フォーカスを失います。バリデーションスクリプトをレイアウトや.field-validation-valid CSSから削除しても、もはや変更されません。
これはなぜですか、それを防ぐ方法はありますか?
アドバイスをいただきありがとうございます。