我正在尝试使用DataAnnotations
验证部分视图中的表单。
问题是当我检查表单在javascript中是否有效时,它总是返回true,即使表单不符合要求。
这是始终返回true的行:var valid = $("#create-language-form").valid();
在我的模型中,我得到了这个:
[Required(ErrorMessage="Please enter a name")]
public string Name { get; set; }
在我的视图中,我得到了这个:
@using(Html.BeginForm(null, null, FormMethod.Post, new { id = "create-language-form" }))
{
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
}
在我的 javascript 中,我得到了这个:
$("#create-language-dialog").dialog({
modal: true,
open: function (event, ui) {
$('#create-language-dialog').load("/Languages/CreatePartial", { id: objectid });
},
buttons: {
"Save": function () {
var valid = $("#create-language-form").valid();
if (valid) {
//do stuff
}
}
}
});
可能有什么问题?我想让MVC验证在局部视图中工作的任何东西?
答案 0 :(得分:2)
这将验证表单并返回true或false。
var valid = $("#create-language-form").validate().form();
答案 1 :(得分:0)
我有类似的问题,我编写了自己的功能,如下所示
function isFormValid() {
var valid = true;
$(".field-validation-error").each(function () {
if ($(this).attr("data-valmsg-for") == "Name") {
valid = false;
}
});
return valid;
}
这将检查与ValidationMessageFor
相对应的错误元素。我的页面有多种形式,我希望这只适用于表单上的几个字段,所以我在data-valmsg-for
上添加了if条件。如果您有一个表格,并想检查是否有任何字段出错,那么您可以按照下面的说明进行操作
function isFormValid() {
var valid = true;
$(".field-validation-error").each(function () {
valid = false;
});
return valid;
}