【发布时间】:2019-04-10 20:30:36
【问题描述】:
我已经使用 asp.net mvc 中的 Ajax.BeginForm 测试了 jquery validate,虽然表单验证,如果表单无效,则不会显示错误消息。
表格代码:
@using (Ajax.BeginForm("Save", "Student", null,
new AjaxOptions { HttpMethod = "POST", OnSuccess = "StudentSucess", OnFailure = "StudentFail", OnBegin = "validateForm", },
new { id = "form-student" }))
{
<div class="form-group">
<input type="hidden" class="form-control" id="Id" name="Id" />
</div>
<div class="form-group">
<label>TESTE</label>
<select name="Test" required="" class="form-control">
<option value="">Select</option>
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
</select>
</div>
<div class="form-group">
<input type="text" class="form-control" id="Name" name="Name" placeholder="Name" autocomplete="off" required="" />
</div>
<div class="form-group m-t-10">
<button type="submit" class="btn btn-theme">Create</button>
</div>
}
验证功能代码
function validateForm() {
var valid = $("#form-student").validate({
rules: {
Name: {
required: true
},
Test: {
required: true
},
},
messages: {
Name: {
required: "Your name is required"
},
Test: {
required: "Test is required"
},
}
});
return valid;
}
我需要显示相应验证字段的消息。
重要提示:stackoverflow 用户将同一个问题标记为重复问题,并且该问题与他所说的重复问题不同,不能解决该问题。我尝试了 cmets 的所有解决方案,但它们都不适合我。
【问题讨论】:
-
你在使用任何插件吗?
-
@shajji 我正在使用 jquery 验证。
-
HTML5 必需的属性是否存在干扰?您已经在那里声明这两个字段都是必需的(required="")。可能这会导致浏览器不触发提交按钮的点击。要对此进行测试,只需删除属性即可。
-
@Felix 哇,这就是问题所在。验证现已生效。非常感谢。
-
只需在 validateForm() 方法之外调用
$("#form-student").validate({....})
标签: jquery asp.net asp.net-mvc asp.net-mvc-4 jquery-validate