asp.net javascript验证问题

时间:2013-10-11 07:10:39

标签: javascript jquery asp.net

我正在使用asp.net。我有一个登录表单。我在页面中为此编写了Javascript验证函数。

<table>
    <tr>
        <td>Username:></td>
        <td><asp:TextBox runat="server" id="txtUsername"/></td>
        <td>Password:></td>
        <td><asp:TextBox runat="server" id="txtPassword"/></td>
        <td>Username:></td>
        <td><asp:Button runat="server" id="btnLogin" Text="Login" onclientclick="return Validatecp()"/></td>
    </tr>
</table>

当我专注于文本框并按回车键时,整个页面正在重新加载。我想在按下按钮时显示验证。这可能吗?

修改

验证功能:

function Validatecp() {

            var name = document.getElementById('<%=txtName.ClientID %>').value;
            var password= document.getElementById('<%=txtTo.ClientID %>').value;

            if (name == "") {
                document.getElementById("td1").innerHTML = "Name Required.";
                return false;
            }
            else {
                document.getElementById("td1").innerHTML = "";
            }
            if (password== "") {
                document.getElementById("td2").innerHTML = "password Required.";
                return false;
            }               
            else {
                document.getElementById("td2").innerHTML = "";
            }
            return true;
        }

4 个答案:

答案 0 :(得分:1)

如果您已经编写了java-script代码,那么请确保js代码中的return false如果无效,并且在aspx文件中需要使用return,如下所示

<asp:Button runat="server" id="btnLogin" Text="Login" 
     OnClientClick="return Validate()"/>

编辑-1

您的按钮可能不是默认按钮,因此当您按下回车按钮时页面会刷新。对于此使用代码

<asp:Panel ID="p" runat="server" DefaultButton="myButton">
      <%-- Text boxes here --%>
      <asp:Button ID="myButton" runat="server" />
</asp:Panel>

一些有用的链接

  1. http://www.hanselman.com/blog/ASPNETHowToCreateADefaultEnterButtonForFormsPostBacks.aspx
  2. how to set a default 'enter' on a certain button

答案 1 :(得分:1)

您想要在用户点击输入并且焦点位于文本框中时验证文本框的值,然后使用以下代码:

 <table>
        <tr>
            <td>
                Username:>
            </td>
            <td>
                <asp:TextBox CssClass="save" runat="server" ID="txtUsername" />
            </td>
            <td>
                Password:>
            </td>
            <td>
                <asp:TextBox CssClass="save" runat="server" ID="txtPassword" />
            </td>
            <td>
                Username:>
            </td>
            <td>
                <asp:Button CssClass="save" runat="server" ID="btnLogin" Text="Login" />
            </td>
        </tr>
    </table>
    <asp:Button ID="submit" runat="server" Text="submit" />

和jquery代码:

<script type="text/javascript">
    $('.save').live('keydown', function (event) {
        if (event.keyCode == '13') {
            alert('heee');
            return false;
            event.preventDefault();
        }
    });
</script>

或者,如果您想验证输入按钮上的控件,请单击,然后使用以下代码:

<asp:Panel ID="pnl" runat="server" DefaultButton="submit">
        <table>
            <tr>
                <td>
                    Username:>
                </td>
                <td>
                    <asp:TextBox CssClass="save" runat="server" ID="txtUsername" />
                </td>
                <td>
                    Password:>
                </td>
                <td>
                    <asp:TextBox CssClass="save" runat="server" ID="txtPassword" />
                </td>
                <td>
                    Username:>
                </td>
                <td>
                    <asp:Button CssClass="save" runat="server" ID="btnLogin" Text="Login" />
                </td>
            </tr>
        </table>
        <asp:Button ID="submit" runat="server" Text="submit" />
    </asp:Panel>

和jquery代码是:

 $('[id$=submit]').click(function (event) {
        if (event.keyCode == '13') {
            alert('heee');
            return false;
            event.preventDefault();
        }
    });

这就是全部

答案 2 :(得分:0)

您需要为按钮添加一个属性(btnLogin)OnClientClick="Validate()"

像:

<asp:Button runat="server" id="btnLogin" Text="Login" 
     OnClientClick="Validate()"/>

定义javascript函数Validate(),如果表单值无效,则返回false。

答案 3 :(得分:0)

我会在Jquery那样做。

//set this so that Jquery selector can get your button
 <asp:Button runat="server" id="btnLogin" Text="Login" ClientIDMode="Static" />

jquery的

$(function) () {

$('#btnLogin').click(e) {

Your javascript code here

 //put those if you don't want your page reloading
 e.preventDefault();
 return false;

 });
   });