对于我的ASP.NET MVC视图中已根据需要进行归因的字段,框架是否有任何方法可以自动呈现某种指示符,表明字段在元数据中被标记为必需?
答案 0 :(得分:14)
应该能够用CSS做到这一点,因为MVC3将这些自定义属性添加到元素中:
<input data-val="true" data-val-required="The Username field is required." id="Username" name="Username" type="text" value="" />
您可以像下面那样关闭CSS中所需的数据值:
输入[data-val-required] { 背景:红 } 或者设置星号等的背景图片。
答案 1 :(得分:12)
我这样做是因为我的必填字段必须是动态的(在配置文件中定义)
在视图末尾添加:
<script type="text/javascript">
$('input[type=text]').each(function () {
var req = $(this).attr('data-val-required');
if (undefined != req) {
var label = $('label[for="' + $(this).attr('id') + '"]');
var text = label.text();
if (text.length > 0) {
label.append('<span style="color:red"> *</span>');
}
}
});
</script>
答案 2 :(得分:4)
这是一个将红色星号附加到任何具有“data-val-required”属性的右侧的星号。
<script type="text/javascript">
$('[data-val-required]').after('<span style="color:red; font-size: 20px; vertical-align: middle;"> *</span>');
</script>
答案 3 :(得分:4)
我修改了Renato Saito的答案以包含更多字段类型(所有类型的输入和选择列表)并使用jQuery命名空间而不是通用$。这是我的修订版:
<script type="text/javascript">
// add indicator to required fields
jQuery('input,select').each(function () {
var req = jQuery(this).attr('data-val-required');
if (undefined != req) {
var label = jQuery('label[for="' + jQuery(this).attr('id') + '"]');
var text = label.text();
if (text.length > 0) {
label.append('<span style="color:red"> *</span>');
}
}
});
</script>
答案 4 :(得分:1)
添加html属性是不够的。这只会导致javascript验证错误。如果你想表明该字段是必需的,你可能想要为它添加一个星号。你可以通过HtmlHelper的extenssion方法来实现。你可以在这里找到详尽的解释
答案 5 :(得分:0)
从我这边做了一个小修改。
实际上我有主键(DB中的Identity Columns)。我不想强调。
因此,我在代码片段下方使用,仅选择注释中具有必需属性的input[type=text]
字段。
$("[data-val-required]").not(":hidden").not(":radio").not(":checkbox").after('<span style="color:red;max-width:10px;min-height:30px;">*</span>');