私はjQueryが初めてで、検証要素のスタイルをカスタマイズするという点で少し苦労しています(ASP.NET MVC3プロジェクト)。などの CSS を変更できることはわかっていますがfield-validation-error
、input-validation-error
達成したいことは次のとおりです (jQuery 1.5.1 と jQuery UI 1.8.11 を使用):
ラベルと入力要素の組み合わせの場合、検証が失敗したときにラベルの色を変更したいと思います (現在、入力要素の背景色のみが明るい赤に変わります)。さらに、入力要素の右側にエラー アイコンを表示し (これは機能します)、ツールチップとしてエラー メッセージを表示したいと思います (これは機能しません)。
さらに、フォームの送信ボタンにカーソルを合わせると、カスタム スタイルのツールチップとして検証の概要が表示されるようにしたいと思います (これを行う方法がわかりません)。
通常、フォームの検証は機能しますが、上記のように要素のスタイルを変更したいと考えています。私が得られないのは、validate
関数が起動していないように見える理由です(ここでは、などから始めることができると思いましたerrorPlacement
)。私のコードは次のとおりです。
<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>
$(document).ready( function()
{
$("form").validate({
debug: true,
errorPlacement: function(error, element)
{
error.insertBefore(element);
},
submitHandler: function()
{
alert("submit");
}
});
});
[...]
@using(Html.BeginForm())
{
[...]
<td>@Html.LabelFor(model => model.SomeField)</td>
<td>
@Html.EditorFor(model => model.SomeField)
@Html.ValidationMessagesFor(model => model.ValidFrom)
</td>
[...]
@Html.ValidationSummary(false);
<input id="btnSubmit" name="submit" type="submit" value="Send" />
}
submitHandler を設定debug: true
および定義しているにもかかわらずalert
、Firefox の Web 開発者コンソールに (検証関連の) 出力が表示されません。alert
フォームが有効なときに送信ボタンをクリックしてもメッセージが表示されず、サーバーに投稿されるだけです。また、フォームIDを明示的に設定し、jQueryで次のようにアクセスしようとしました:
$("#myForm")...
[...]
@using(Html.BeginForm("Action","Controler", FormMethod.Post, new { id = "myForm" }))
{
[...]
残念ながら、これは何も変わりません。上記のように検証要素をスタイルするにはどうすればよいですか? validate
関数が起動しないのはなぜですか?