我想验证客户端的下拉列表和列表框。
//模型
public class NewStreamViewModel
{
public NewStreamViewModel()
{
this.Subjects = new List<SelectListItem>();
this.Languages = new List<SelectListItem>();
}
[Display(Name = "Language")]
[Required(ErrorMessage = "{0} is Required")]
public int LanguageId {get;set;}
[Display(Name = "Subject")]
[Required(ErrorMessage = "{0} is Required")]
public int[] SubjectIds {get;set;}
public List<SelectListItem> Languages {get;set;}
public List<SelectListItem> Subjects {get;set;}
}
//看法
<div id="tab1">
<table style="background: none; width: 100%;">
<tr>
<td>
Language
</td>
<td>
@Html.DropDownListFor(m=>m.LanguageId,Model.Languages)
@Html.ValidationMessageFor(m=>m.LanguageId)
</td>
</tr>
<tr>
<td>Stream
</td>
<td>
@Html.DropDownListFor(m => m.StreamId, Model.Streams)
</td>
</tr>
<tr>
<td>Subjects
</td>
<td>
@Html.ListBoxFor(m => m.SubjectIds, Model.Subjects,
new { Style = "width:300px;" })
@Html.ValidationMessageFor(m=>m.SubjectIds)
</td>
</tr>
</table>
<input type="button" id="addspan">
</div>
<script type="text/javascript" src="~/Scripts/jquery-1.7.1.min.js"></script>
<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>
<script type="text/javascript">
$(function () {
$('#addspan').click(function () {
var $step = $('#tab1');
var validator = $("form").validate(); // obtain validator
var anyError = false;
$step.find('select').each(function () {
// validate every input element inside this step
if (!validator.element(this)) {
anyError = true;
}
})
</script>
我使用了不显眼的验证,但它仍然对我不起作用,我如何验证客户端的下拉列表和列表框?