此代码无效,它会禁用代码,有时必须启用它,我该怎么做?什么可能是错的?我这样做是为了避免多次点击
<% Html.EnableClientValidation(); %>
$(document).ready(function () {
$('#form1').submit(function () {
$('#btn').attr("disabled", "disabled");
setTimeout('enableButton()', 50);
});
function enableButton() {
$('#btn').removeAttr('disabled');
}
});
<% using (Html.BeginForm("Create","OrganizationGroups",FormMethod.Post,new {id="form1"}))
{%>
%>
<%= Html.ValidationSummary(false)%>
<div>
<%= Html.ActionLink("Back to List", "ManageOrganizationGroup")%>
</div>
答案 0 :(得分:4)
你不能在这里将字符串传递给setTimeout()
,因为函数不是全局函数,而是传递对函数的直接引用,所以改变这个:
setTimeout('enableButton()', 50);
到此:
setTimeout(enableButton, 50);
一般来说始终尝试这样做,它会避免很多问题......就像你所拥有的那样。
答案 1 :(得分:1)
这样:
<% Html.EnableClientValidation(); %>
function enableButton() {
$('#btn').removeAttr('disabled');
}
$(document).ready(function () {
$('#form1').submit(function () {
$('#btn').attr("disabled", "disabled");
setTimeout(enableButton, 50);
});
});
或者这个:
<% Html.EnableClientValidation(); %>
$(document).ready(function () {
$('#form1').submit(function () {
var btn = $('#btn').attr("disabled", "disabled"); // ref to #btn
setTimeout(function()
{
$(btn).removeAttr('disabled');
}
, 50);
});
});