【问题标题】:asp.net javascript validation issueasp.net javascript验证问题
【发布时间】:2013-10-11 07:10:39
【问题描述】:

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

【问题讨论】:

  • 您需要出示您的验证码
  • 如果您使用的是 Visual Studio,您可以简单地将验证控件添加到您的表单中。

标签: javascript jquery asp.net


【解决方案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】:

    如果您编写了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

    【讨论】:

      【解决方案3】:

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

      喜欢:

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

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

      【讨论】:

      • 你能在你的问题中写下你的javascript函数吗?
      • Billy,添加这个 javascript 函数并添加 jQuery 插件。函数 Validate(){ var name = $("#txtPassword").val(); if(name == ""){ alert("请输入您的姓名");返回假; } }
      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-26
        • 2011-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多