2016-10-04 68 views
2

我正在构建一个asp.net web应用程序。在登录页面,用户名和密码文本框需要,当用户试图没有填写这两个箱子来验证我得到一个非常好的消息,如下图所示:使用OnServerClick与“必填”字段

enter image description here

但是,当我在提交按钮上添加一个onserverclick事件处理程序,此功能不再有效 - 如果用户使用空文本框进行验证,则不会发生任何操作。以下是登录表单的代码。

<fieldset> 
 
    <%--Input--%> 
 
    <div class="form-group"> 
 
     <label for="UsernameTextBox" class="col-lg-2 control-label text-right">Username</label> 
 
     <div class="col-lg-10"> 
 
     <input type="text" class="form-control" placeholder="username" required id="UsernameTextBox" runat="server"> 
 
     </div> 
 
    </div> 
 

 
    <div class="form-group"> 
 
     <label for="PasswordTextBox" class="col-lg-2 control-label text-right">Password</label> 
 
     <div class="col-lg-10"> 
 
     <input type="password" class="form-control" placeholder="password" required id="PasswordTextBox" runat="server"> 
 
     </div> 
 
    </div> 
 

 
    <%--Buttons--%> 
 
     <div class="form-group"> 
 
     <div class="col-lg-10 col-lg-offset-2"> 
 
      <button type="submit" class="btn btn-primary btn-lg" onserverclick="Login_Click" id="LoginBtn" runat="server"><i class="glyphicon glyphicon-ok"></i> 
 
      </button> 
 
      <button type="reset" class="btn btn-default btn-lg"><i class="glyphicon glyphicon-repeat"></i> 
 
      </button> 
 
     </div> 
 
     </div> 
 
</fieldset>

+1

这里类似问题 http://stackoverflow.com/questions/32857329/button-with-onserverclick-will-not-response – Sanchez89

回答

2

我刚才一直在尝试了这一点。当我在按钮服务器端函数上放置一个断点并单击时,如果我再次单击该按钮,则会出现“必需”消息,然后单击它,我会看到它已经到达中断点。

onserverclick的MSDN状态“此事件导致客户端和服务器之间发生往返并返回,这与客户端OnClick事件有故意不同。”

https://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmlbutton.onserverclick(v=vs.110).aspx

按钮获取设置与将在执行回发并绕过浏览器需要验证一个onclick属性。

<button onclick="__doPostBack('ctl00$MainContent$btnSubmit','')" id="MainContent_btnSubmit"> Submit </button> 

我发现如果您使用标准的asp:按钮,那么所需的验证会触发。

<asp:Button runat="server" ID="btnSubmit" OnClick="btnSubmit_Click" /> 
+0

谢谢@Rob。我一定会在我的项目中尝试。 –

+0

没问题@lila Anastassov –