【发布时间】:2017-09-05 16:51:19
【问题描述】:
我有两个按钮,但我只能验证一个。当用户单击添加并且未填写整个表单时,他们会收到错误消息,但如果他们单击完成而不是给出错误消息,它会转到另一个页面,但我想在转到该页面之前给出错误。这就是我迄今为止所拥有的:
@model student.Models.Student
<h2>Student Record</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Issue</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.studentNumber, htmlAttributes: new { @class = "col-md-2" })
@Html.EditorFor(model => model.studentNumber, new { htmlAttributes = new { @readonly = "readonly", @id = "reqnum", @class = "form-control" } })
</div>
<div class="form-group">
@Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "col-md-2" })
@Html.ValidationMessageFor(model => model.name, "", new { @class = "text-danger" })
</div>
<div class="form-group">
@Html.Label("Processed by:", htmlAttributes: new { @class = "col-md-2" })
@Html.DropDownListFor(model => model.processedbyDetails.employeeNum, new SelectList(ViewBag.StoresReps, "Value", "Text"), new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.processedbyDetails.employeeNum, "", new { @class = "text-danger" })
</div>
@* -- MANY OTHER INPUTS -- *@
<div class="form-group">
<div class="col-md-offset-4 col-md-12">
<input type="submit" value="Add" name="Add" class="btn btn-default" width="89" />
<input type="button" value="Finish" name="Issue" margin="50px" onclick="location.href='@Url.Action("ViewIssue", "Issue")' " class="btn btn-default" />
<input type="button" value="Cancel" name="Cancel" margin="50px" onclick="location.href='@Url.Action("Cancel", "Issue")' " class="btn btn-default" />
</div>
</div>
</div>
}
编辑
@{
ViewBag.Title = "Student Item";
}
<!-- JS includes -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
<script src="//ajax.aspnetcdn.com/ajax/mvc/4.0/jquery.validate.unobtrusive.min.js"></script>
<script type="text/javascript">
<script type="text/javascript">
function onFinishClick() {
if ($('form').valid()) {
location.href = '@Url.Action("ViewIssue", "Issue")';
}
return false;
}
</script>
<input type="button" value="Finish" name="Issue" margin="50px" onclick="onFinishClick()" class="btn btn-default" />
【问题讨论】:
-
默认情况下,
input type="button"不会触发验证。见:stackoverflow.com/questions/13671710/… -
那我该怎么做呢?
-
@Jane - 请在下面查看我的回答。
标签: c# jquery asp.net asp.net-mvc