【问题标题】:How to use this code working if i use web user control of asp.net?如果我使用 asp.net 的 Web 用户控件,如何使用此代码工作?
【发布时间】:2011-01-27 10:39:16
【问题描述】:

如果我使用 asp.net 的 Web 用户控件,如何使用此代码?

</head>
<body>
    <form id="form1" runat="server">
    <div>

      <asp:CheckBox ID="CheckBox1" runat="server" /><br />
<asp:CheckBox ID="CheckBox2" runat="server" /><br />
<asp:CheckBox ID="CheckBox3" runat="server" /><br />
<asp:CheckBox ID="CheckBox4" runat="server" /><br />
<asp:CheckBox ID="CheckBox5" runat="server" /><br />
<asp:CheckBox ID="CheckBox6" runat="server" /><br />
<asp:CheckBox ID="CheckBox7" runat="server" /><br />
<asp:CheckBox ID="CheckBox8" runat="server" /><br />
<asp:CheckBox ID="CheckBox9" runat="server" /><br />
<asp:CheckBox ID="CheckBox10" runat="server" /><br />
        <asp:Button ID="Button1" runat="server" Text="Button" />
    </div>
    </form>
    <script src ="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
    <title>Untitled Page</title>
    <script type="text/javascript">

      $("#sumit").click(function(){

    var vCheckedCBCount =  $("input:checkbox").filter(function(index){ 
    return $(this)[0].checked == true;
    }).length;
    if(vCheckedCBCount > 5)
    {
        alert('You cannot check more than 5 check box.');
        return false;
    } 
});
 </script >
</body>
</html>

【问题讨论】:

  • 标题标签应该在头部,而不是在正文中

标签: asp.net vb.net visual-studio-2008 webusercontrol


【解决方案1】:

几件事:

第一

  $("#sumit").click(function(){...}

正在寻找一个 id 为 'sumit' 的 HTML 元素(# 表示 JQuery 中的 ID)。

如果您查看页面的源代码,您会看到 Button1 在由 ASP.Net 转换为 HTML 端按钮时不会具有该 ID,因为 ASP.Net 将生成一个相当不可读的唯一客户端 ID - 完整的可能是 $ 符号和下划线。

Jquery 可以使用 $('.myClass') - '.' 按其类找到您的按钮表示“类”,就像“#”表示“ID”一样,只需将类 submit 添加到您的 ASP.Net Button1

<asp:Button ID="Button1" runat="server" Text="Button" CssClass='submit' />

然后修改您的 JavaScript 调用: 首先,通过在标准 JQuery 语法中包装你的 javascript 来确保事件处理程序在文档准备就绪时连接起来:

$(document).ready(function () {
    //Your Javascript goes in here.
});

所以当重新工作时,它看起来像这样(我已经移动了一些东西并取出了你的 &lt;title&gt; 元素。)

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript">
    $(document).ready(function () {
        $(".submit").click(function () {

            /* this code is here for demo purposes only - 5arx*/
            var numchecked = 0;

            $('input:checkbox').each(function () {
                if ($(this).attr('checked')) {
                    //alert('checked');
                    numchecked++;
                }
            });

            if (numchecked > 5) {
                alert('You cannot check more than 5 check box.');
            }

            return false; //This will stop your ASP.Net button submitting the form via a Postback.
            /* Your orginal code.
            var vCheckedCBCount = $("input:checkbox").filter(function (index) {
            return $(this)[0].checked == true;
            }).length;

            if (vCheckedCBCount > 5) {
            alert('You cannot check more than 5 check box.');

            }
            */
        });
    });
</script>
<div>
    <asp:CheckBox ID="CheckBox1" runat="server" /><br />
    <asp:CheckBox ID="CheckBox2" runat="server" /><br />
    <asp:CheckBox ID="CheckBox3" runat="server" /><br />
    <asp:CheckBox ID="CheckBox4" runat="server" /><br />
    <asp:CheckBox ID="CheckBox5" runat="server" /><br />
    <asp:CheckBox ID="CheckBox6" runat="server" /><br />
    <asp:CheckBox ID="CheckBox7" runat="server" /><br />
    <asp:CheckBox ID="CheckBox8" runat="server" /><br />
    <asp:CheckBox ID="CheckBox9" runat="server" /><br />
    <asp:CheckBox ID="CheckBox10" runat="server" /><br />
    <asp:Button ID="Button1" runat="server" Text="Button" CssClass="submit" />
</div>

希望这会有所帮助。如需更多有用的 JQuery 内容,请访问 www.visualjquery.com - 它是一个交互式 JQuery 测试/学习工具。

第一次。祝你好运:-)

【讨论】:

    【解决方案2】:

    $("#sumit") 正在寻找一个 ID="sumit" 的元素,而您的两个元素都没有。假设您想挂钩按钮的点击事件,请尝试$("#Button1")

    【讨论】:

    • 是的,我已经改变了……我的问题是我的整个编码和控件都在 webusercontrols 上……当我将该用户控件拖到 webform.aspx 时,它将无法工作……否则通常它工作正常......如果我在 webform.aspx 页面中使用所有控件和 jquery 函数而不使用 webusercontrol ..
    • #Button1 将不起作用,因为 ASP.Net 将为控件生成一个大且不吸引人的 ID - 请查看源代码以查看此内容。
    • 抱歉不确定您的意思 re: ClientID ...?
    • Pre ASP.NET 4.0 -
    • ASP.NET 4.0 -
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    相关资源
    最近更新 更多