我的页面上有一个asp向导,分三步。
<asp:Wizard ID="wizardBestellen" runat="server" ActiveStepIndex="0" DisplaySideBar="False" onfinishbuttonclick="wizard_NextButtonClick" onnextbuttonclick="wizard_NextButtonClick" onpreviousbuttonclick="wizard_PreviousButtonClick">
<StartNavigationTemplate></StartNavigationTemplate>
<StepNavigationTemplate></StepNavigationTemplate>
<FinishNavigationTemplate></FinishNavigationTemplate>
<WizardSteps>
<asp:WizardStep runat="server" ID="step1" StepType="Start">
<uc1:control ID="uc1" runat="server" />
</asp:WizardStep>
<asp:WizardStep runat="server"ID="step2" StepType="Step">
<uc2:control ID="uc2" runat="server" />
</asp:WizardStep>
<asp:WizardStep ID="step3" runat="server" StepType="Finish">
<uc3:control ID="uc3" runat="server" />
</asp:WizardStep>
</WizardSteps>
</asp:Wizard>
现在每个控件都有一个下一个和上一个按钮,在点击后验证您的数据并发送到下一步。按钮都看起来像:
<asp:LinkButton ID="bntPrevious" runat="server" CommandName="MovePrevious" CssClass="buttonOrange" CausesValidation="false"><span>Previous</span></asp:LinkButton>
<asp:LinkButton ID="btnNext" runat="server" CommandName="MoveNext" CssClass="buttonOrange" CausesValidation="true"><span>Next</span></asp:LinkButton>
到目前为止一切都很完美..
现在我想在点击它之后禁用按钮并显示带有加载程序图像的div。所以我创建了一个名为divLoader
的div和一个javascript函数,它隐藏了按钮所在的div并用加载器显示div。
function ToggleDiv(divButton, divLabel)
{
if (divButton.style.display == 'block')
{
divButton.style.display = 'none';
divLabel.style.display = 'block';
}
else
{
divButton.style.display = 'block';
divLabel.style.display = 'none';
}
}
但我不能让这个工作。 ToggleDiv函数在另一种情况下工作得很好,所以这不是问题。 我试过从链接按钮中的OnClick属性调用该函数,但这给了我一个错误。我尝试了OnClientClick,但这不起作用,我也尝试在后面的代码中设置onclick属性,这也是一个死胡同。
有人可以向我解释我做错了什么,或者是否有其他方法阻止用户点击按钮两次?
答案 0 :(得分:1)
听起来你没有让绑定工作。
我要做的第一件事是通过执行视图源来检查发出的控件ID。 .NET框架的某些实现会为这些控件ID添加额外的漏洞,因此无法保证它与表单中显示的相同。
接下来,我会尝试一些JavaScript后期绑定。如果您有一个JavaScript文件,请将其放在那里。如果没有创建一个或将JavaScript块添加到表单的底部(为首选项创建一个新文件)。
使用jQuery这样的JAvaScript程序可以轻松实现所有这些功能,但暂时可以假设您没有这样的程序。
添加一个窗口onload事件处理程序
window.onload = function(){
//code to go here
}
现在添加按钮的点击装订:
window.onload = function(){
document.getElementById("***YOUR BUTTON ID***").onclick = function(){
ToggleDiv(this, document.getElementById("***YOUR LABEL ID***"));
}
}
我说这对jQuery来说会更轻松一点,嗯,这是等效的实现:
$(document).ready(function(){
$("#***YOUR BUTTON ID***").click(function(){
$(this).toggle();
$("#***YOUR LABEL ID***")).toggle();
});
});
上述示例完全取消了您对ToggleDiv
功能的需求。