我的表单有一个重置按钮,可以返回一个闪亮的新视图。但是,在按下重置按钮时无效的所有字段都会在页面刷新新视图之前显示相应的验证消息。它看起来不专业。
在客户端(使用JavaScript),如何发布和忽略验证?
如果我的用户打算重置表单,我不想向他发送红色验证消息。我在我的模型中使用了典型的MVC数据注释,如下所示。
[Display(Name="IP Address")]
[Required(ErrorMessage = "Required")]
public string address { get; set; }
以下是我的观点的相关部分。所有表单字段都以类似的方式声明。
<p>
@Html.LabelFor(c => c.address):
@Html.TextBoxFor(c => c.address)
@Html.ValidationMessageFor(c => c.address, String.Empty, new { @class ="errorMessage"})
</p>
最后,这是单击重置按钮时运行的Javascript。我认为submit()是导致所有验证消息出现的原因,但我不确定如何发布任何其他方式。
$('#resetButton').click(function () {
this.form.submit();
});
我尝试Google“ javascript POST而不验证”会继续查找“验证无邮件”之类的网页,如果您尝试使用“ POST而不验证” “在引号中几乎没有任何用处。
答案 0 :(得分:1)
您可以使用
[ValidateInput(false)]
如果您确定此操作不需要任何验证,请attibute并将其分配给您的控制器操作。
问题是,当您只需要重置表单时,是否真的需要拨打电话(因此不需要服务器操作)。如果只是重置表单,您可以使用以下内容:
$('#resetButton').click(function () {
this.form.reset();
});
而不是:
$('#resetButton').click(function () {
this.form.submit();
});
答案 1 :(得分:1)
根本不提交POST
;将表单重置到位。使用DOM(非jquery)表单重置功能:
$('#resetButton').click(function () {
this.form.reset();
});