MVC3显示.blur上DataAnnotations属性的描述

时间:2012-04-17 22:10:40

标签: jquery asp.net-mvc-3 data-annotations

mvc3 DataAnnotations有一个Description属性:

e.g。

[Display (Name="Title", Description="description about the title")]
public string Title { set; get}; 

在我看来,我想在.blur上使用jquery显示输入的Description文本。

<script type="text/javascript">
   $(function () {
     $("#title").blur(function () {
        ???
    });
});

@Html.LabelFor(model => model.Title)
//description here, not sure how to map it.
@Html.LabelFor()//description would go here
@Html.TextBoxFor(model => model.Title)
@Html.ValidationMessageFor(model => model.Title)

THX!

2 个答案:

答案 0 :(得分:1)

我以前从未使用过描述,但假设它添加了一个标题标签,那么你可以使用它:

var desc = $(this).attr("title");
alert(desc);

答案 1 :(得分:1)

我不认为添加说明会为您的输入元素添加标题标记。您可能想要在创建像这样的文本框时提及

@Html.TextBoxFor(model => model.Title, new {@title="Your description"})

将为您的input元素生成一个title标记,并且如上所述,您可以使用jQuery来访问它。

$(function () {
  $("#Title").blur(function () {
       alert($(this).attr("title"));
  });        
});

您可能希望使用通用选择器而不是特定选择器(ID),类似于所有这些输入元素的类名

编辑:基于有关通用选择器和特定选择器的评论

每个元素的ID都应该是唯一的,所以如果你有8个元素,那么元素就会(并且应该)有8个唯一的id。在这种情况下,您需要按照ID

将您的函数绑定到8个不同的项目
   $("#Title,#Name,#City,#JobTitle,#SomeOther,#LastName,#Hi,#Ho").blur(function () {
           alert($(this).attr("title"));
    });  

但是如果你有一个应用于所有这些元素的公共类,你可以像这样使用它(下面将函数绑定到所有具有css类值mySimpleClass

的元素
   $(".mySimpleClass").blur(function () {
           alert($(this).attr("title"));
    });

您可以使用其他选择器,如子选择器。 (下面的代码将您的功能绑定到divContainer div

中存在的text类型的所有输入元素
   $("#divcontainer input type[text]").blur(function () {
           alert($(this).attr("title"));
    });

要在使用Html.TextBox for HTML helper时将Css类添加到输入元素,您可以像这样使用它

@Html.TextBoxFor(model => model.Title, new {@title="Your description", @class="mySimpleClass"})