2011-05-05 43 views
0

我有我认为是一个非常简单的JavaScript问题,但我开始疯了,试图找出我的问题。JavaScript有时可以防止服务器事件与asp.net发生冲突

我有一个缓慢的页面,用户可以点击提交,然后点击另一个按钮,同时等待页面加载,这是创建问题。我想我可以显示一个请等待的消息,并禁用点击提交按钮。下面是这个函数,我使用的是asp.net 3.5,所以这里有一个名称修改问题,因为这个我正在使用一个getElemenetsByName并扫描正确的项目(不是真棒,但它似乎工作)。当我运行这个时,按钮被禁用,但是页面刚好位于那里,服务器永远不会被调用。我尝试在Firefox中,我没有看到任何萤火虫错误,但是当我在服务器上设置断点时,服务器def不会被调用。如果有预期的产出,我尝试返回true,但是nada。当我推荐processing(){ // stuff }的内容时,它可以很好地工作,所以有些东西似乎在杀死我。

function processing() { 
    var pleaseWaitID = "lblPleaseWait"; 
    var submitBtnName = "btnSubmit"; 
    var submitControl = document.getElementsByTagName('input'); 

    var pleaseWaitlbls = document.getElementsByName(pleaseWaitID); 

    for (pleaseWait in pleaseWaitlbls) { 
     if (pleaseWaitlbls[pleaseWait].style != null) { 
      pleaseWaitlbls[pleaseWait].style.visibility="visible"; 
     } 
    } 

    for (submitButton in submitControl) { 
     if (submitControl[submitButton].name != null) { 
      if (submitControl[submitButton].name.search(submitBtnName) != -1) { 
       submitControl[submitButton].disabled = "disabled"; 
      } 
     } 
    } 

    return true; 
} 

.....

asp:Button ID="btnSubmit" name="btnSubmit" SkinID="MainAction" runat="server" Text="Submit" OnClientClick = "javascript:processing();" 
OnClick="btnSubmit_Click" meta:resourcekey="btnSubmitResource1" 

对我在这里搞砸了任何想法?

谢谢你的时间。

+0

请通过查看呈现的HTML源来验证标记名是否正确。 – 2011-05-05 16:55:39

+0

由于asp.net名称的改变,呈现的html会给出非常非常长的名称标签(我认为这将在更高版本的asp.net中解决),因此它的名称和ID标记都是contentBasepage_c1_popupmodal_btnSubmit。编辑:另外我认为这是正确的,因为它似乎找到按钮,禁用它,并显示等待文本,但然后服务器不被调用。它只是坐着。 – Dio 2011-05-05 17:18:07

+0

呈现HTMLis:input type =“submit”name =“ctl00 $ mainContentHolderMVPTO $ btnSubmit”class =“button main”id =“ctl00_mainContentHolderMVPTO_btnSubmit”onclick =“javascript:processing();”值=“提交” – Dio 2011-05-05 18:53:47

回答

相关问题