我有一个表单,需要一段时间服务器来处理.我需要确保用户等待并且不再尝试通过再次单击该按钮重新提交表单.我尝试使用以下jQuery代码:
<script type="text/javascript">
$(document).ready(function() {
$("form#my_form").submit(function() {
$('input').attr('disabled', 'disabled');
$('a').attr('disabled', 'disabled');
return true;
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
当我在Firefox中尝试此操作时,所有内容都被禁用,但表单未提交任何它应包含的POST数据.我不能使用jQuery提交表单,因为我需要使用表单提交按钮,因为有多个提交按钮,我确定哪个用于POST中包含哪个值.我需要像往常一样提交表单,我需要在发生后立即禁用所有内容.
谢谢!
我在按钮单击处理程序中有以下代码.这两种方法都很好.将Page_ClientValidate()导致一个额外的验证检查,并做处理而Page_IsValid利用现有的财产.
质询
Page_IsValid在那个时间计算?如果不能保证,我们需要Page_ClientValidate()明确调用.Page_IsValid设定之前发生的事件是什么?对于此类事件,我们不应该依赖Page_IsValidUPDATE
是否确保仅在验证部分完成后调用按钮单击事件处理程序(在JavaScript中)(即,在作为验证的一部分调用Page_ClientValidate()之后)?如果可以肯定,我可以依赖Page_IsValid吗?
脚本
$('#btnSave').click(function (e) {
//Aproach 1
var isValid = Page_ClientValidate('');
if (isValid)
{
//Do reamining work
}
//Aproach 2
if (Page_IsValid)
{
//Do reamining work
}
});
Run Code Online (Sandbox Code Playgroud)
参考文献: