【发布时间】:2016-06-03 08:55:21
【问题描述】:
我的 mvc 视图中有以下输入
<input class="input-group-field" id="name" name="name" type="text" size="1" required="">
<input class="input-group-field" id="email" name="email" type="email" size="1" required="">
我的 MVC 视图只处理 ajax 请求,没有模型绑定。
我的 Ajax 请求在按钮单击事件上被触发。
我知道没有表单标签,html 5 验证不起作用。
我试图围绕输入设置一个表单并阻止表单被提交。
$('#valForm').submit(function (e) {
e.preventDefault();
});
按钮:
<button class="button green post" type="submit">Submit</button>
但是按钮的点击事件仍然被触发。
$('.button.post').on('click', function () {
//fires
});
如果我将按钮侦听器从单击更改为提交,则不会发生任何事情。
$('.button.post').on('submit', function () {
// does not fire fire
});
我知道如何在不实际提交表单的情况下触发客户端 html5 验证吗?
谢谢
【问题讨论】:
-
添加按钮监听器
-
实际上现在不需要按钮事件,因为您的按钮类型是
submit,它将自动提交表单而不附加按钮事件。并且按钮的提交事件不起作用,因为提交仅适用于forms -
所以我应该把我的ajax请求放在表单提交处理程序中?如果表单无效,我该如何阻止这些操作?
-
所以这里的转折点是这样的,因为您已经阻止了提交的默认行为,您需要自己实现它(使用 ajax 或任何可以向 Web 服务器发送请求的处理程序)。是的,如果表单无效,请将您的 ajax 添加条件不要触发 ajax。 Html5 验证在提交事件被触发之前首先工作,因此无需担心:)
-
是的,先生,你在正确的轨道上 :) 或者你可以添加更多的 html5 验证,这样你就不会在 javascipt 中再次重新验证
标签: asp.net asp.net-mvc validation