2016-04-27 9 views
0

私は古い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から削除しても、もはや変更されません。

これはなぜですか、それを防ぐ方法はありますか?

アドバイスをいただきありがとうございます。

答えて

0

私の部分で間違ったミス。

それはフィールドを検証した後、「有効なビッグテキスト・フィールド」それは「有効」にクラスを追加していないので、このクラスは、もは​​や「ビッグ・テキスト・フィールド」に等しいが、

にCSSを変更しますこれを修正しました:

​​
関連する問題