当与asp.net webforms中的禁用按钮代码一起使用时,javascript确认警报不起作用

时间:2018-03-20 23:14:53

标签: javascript asp.net webforms

我有一个带有这样的提交按钮的网络表单

<asp:Button ID="btnSub" runat="server" Text="submit" OnClientClick="return processSub();" />

它调用的javascript函数就像这样

function processSub(){

    var btnId = '<%= btnSub.ClientID %>'

    var userSelection = confirm('Are you sure you wish to submit');
    if (userSelection){
         document.getElementById(btnId).setAttribute("disabled","disabled");
         return true;
    } else {
         return false;
    }
}

现在我想在用户点击提交时禁用提交按钮。但是当我调用代码将属性设置为禁用时,提交不会发生。 当我在IF块中对此行document.getElementById(btnId).setAttribute("disabled","disabled");发表评论时,它会继续提交。

为什么会这样,我该如何让它发挥作用?我没有使用任何JavaScript库,也不想这样做。

感谢。

2 个答案:

答案 0 :(得分:0)

即使按钮上没有指定OnClick,它在点击时仍会执行表单发布(PostBack)。您使用javascript设置disabled状态,但在发生PostBack后立即将Button重置为原始状态。

如果要禁用该按钮,可以在用户确认后在代码中设置它。

<asp:Button ID="btnSub" runat="server" Text="submit" OnClientClick="return processSub();" 
    OnClick="btnSub_Click" />

protected void btnSub_Click(object sender, EventArgs e)
{
    //disable the button
    btnSub.Enabled = false;
}

答案 1 :(得分:-1)

在返回if语句

之前用js提交表格
document.forms[0].submit();