我在asp.net MVC 4 razor视图中有一个表单:
@{Html.EnableClientValidation(true);}
@using (Html.BeginForm("Register", "Account", FormMethod.Post, new { id = "register" }))
{
<p>@Html.ValidationSummary(false)</p>
@Html.AntiForgeryToken()
// different controls here
<button id="btnRegister" class="btn btn-red-splash s3 hidden" onclick="return GetData();" type="submit">REGISTER</button>
}
我正在为按钮点击下拉列表进行自定义验证
function GetData() {
var IsFormValid = $('form[id=register]').valid();
return Validate() && IsFormValid;
}
和验证程序在这里:
function Validate() {
var value = $('#ddlAreaID').val();
var container = $('form#register').find("[data-valmsg-summary=true]");
if (container == null) {
$("form#register").append("<div class='validation-summary-errors'><ul> </ul></div>");
}
if (value != "0") {
if ($('.validation-summary-errors ul li').hasClass('area'))
$('.validation-summary-errors ul li[class=area]').remove();
$('#ddlAreaID').addClass('valid').removeClass('input-validation-error');
return true;
} else if (value == "0") {
if (!$('.validation-summary-errors ul li').hasClass('area'))
$('.validation-summary-errors ul').append('<li class="area">Area must be selected</li>');
$('#ddlAreaID').addClass('input-validation-error').removeClass('valid');
return false;
}
}
我正在创建验证摘要标记(如果所有控件都有效,那么验证摘要将不会出现,我需要创建它)如果它不存在并在ul中添加li元素。但是如果未选择区域下拉列表,则返回false,但不显示validaion摘要(如果所有其他控件都具有所需值)。
这里是生成的标记:
<div class="validation-summary-valid" data-valmsg-summary="true"><ul><li style="display:none"></li>
</ul></div>
请建议如何修复它