我正在ASP.NET MVC 3中编写一个表单(但在其他环境中的情况可能类似)。 在提交表单时,我想禁用页面,因为服务器处理有点长,所以我想避免用户在按钮上单击两次。 我使用blockUI插件函数,如:
<script type="text/javascript">
jQuery(document).ready(function () {
$('#AddUserForm').submit(function () {
$.blockUI();
});
});
</script>
我不担心联合国阻止用户界面,因为我的表单提交会生成一个新的页面加载,所以事情从一开始就开始。 问题是我的表单使用数据验证属性,如
<input class="text-box single-line" data-val="true" data-val-required="The UserName field is required." id="UserName" name="UserName" type="text" value="" />
所以如果一个字段没有正确验证,表单IS提交(我的代码被执行,阻止了UI),但页面甚至没有被重新加载,所以我完全被阻止了。
有没有人知道是否有拦截事件,对于这种情况,还是有用的替代方案? 提前致谢。 Andrea Bioli
答案 0 :(得分:1)
使用web.config中的mvc3,ClientValidationEnabled和UnobtrusiveJavaScriptEnabled,您只需在提交中使用:
if($(“form:first”)。valid()){$ .blockUI({message:'Un instant svp ...'}); }
答案 1 :(得分:0)
查看preventDefault方法。
<script type="text/javascript">
jQuery(document).ready(function () {
$('#AddUserForm').submit(function (event) {
event.preventDefault();
$.blockUI();
});
});
</script>