日期:2014-05-20  浏览次数:20826 次

.NET验证控件怎么不起左右?
HTML code

 <tr class="b">
     <td class="style1" align="center">价格</td>
     <td class="style2">
          <asp:TextBox ID="txtPrice" runat="server"></asp:TextBox>
                 <asp:RegularExpressionValidator ID="RegularExpressionValidator1" 
                      runat="server" ControlToValidate="txtPrice" 
                      ErrorMessage="*请输入正确的价格" 
                    ValidationExpression="(0|([1-9]\d*))(\.\d+)?" Display="Dynamic" 
                     ValidationGroup="Vpro">
                 </asp:RegularExpressionValidator>
       </td>
   </tr>
<td class="style2">
       <asp:Button ID="btnSubmit" runat="server" Text="提交" onclick="btnSubmit_Click"      OnClientClick="return check(this)" ValidationGroup="Vpro"/>
        </td>


现在这么写的,点提交 即使验证没通过照样也提交上去了?怎么办啊?

------解决方案--------------------
你的js的结构应该是这样:
JScript code
        function check(obj) {
            if (Page_ClientValidate()) {
                //你的代码
                return true;
            }
            else {
                return false;
            }
        }

------解决方案--------------------
探讨
把OnClientClick="return check(this)" 去掉,因为OnClientClick注册后的客户端形式是onclick,验证控件注册到客户端得事件也是Onclick,两者叠加后的形式是:
onclick="return check(this);WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&amp;qu……