asp.net JavaScript 验证问题

asp.net javascript validation issue

本文关键字:问题 验证 JavaScript net asp      更新时间:2023-09-26

我正在使用 asp.net。我有一个登录表单。我已经在Page中为此编写了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;
        }
您希望在

用户单击 Enter 并且焦点位于文本框中时验证文本框的值,然后使用以下代码:

 <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();
        }
    });

就这样

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

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

编辑 -1

您的按钮可能不是默认按钮,因此当您按 Enter 按钮时页面会刷新。为此,请使用下面的代码

<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. 如何在某个按钮上设置默认的"Enter"
您需要

添加一个属性到按钮(btnLogin)OnClientClick="Validate()"

喜欢:

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

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

我会在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;
 });
   });