0

我正在使用 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>

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

编辑:

验证功能:

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

4 回答 4

1

如果您已经编写了java-script代码,那么请确保您return false从 js 代码中获取如果它无效并且在 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. 如何在某个按钮上设置默认的“输入”
于 2013-10-11T07:22:59.170 回答
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();
        }
    });

就这样

于 2013-10-11T07:25:14.747 回答
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;

 });
   });
于 2013-10-11T07:31:58.413 回答
0

您需要向 button(btnLogin) 添加一个属性OnClientClick="Validate()"

喜欢:

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

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

于 2013-10-11T07:15:39.940 回答